繁体   English   中英

Spectrum Color-Picker在Internet Explorer中不起作用

[英]Spectrum Color-Picker not working in Internet Explorer

我正在使用的JavaScript项目中使用Spectrum Color Picker。 https://bgrins.github.io/spectrum/在FireFox中可以正常工作,但在Internet Explorer中不能正常工作。 花式颜色选择器弹出窗口降级为一个简单的文本输入字段。 这是创建输入字段的代码部分:

function updateTables() {
$("#tableTwo tbody").empty();
for (var i = 0; i < polygons.length; i++) {
    //var pColor = new RGBColor();
    var pColor = rgbaToHex(polygons[i].color);
    $("#tableTwo tbody").append('\n<tr '
                                + (selectedPoly == i ? 'style="color:white;background-color:red"' : '')
                                + '><td><input onchange="changeGeometryName(' + i + ')"'
                                + (selectedPoly != i ? 'onfocus="polySelectedFromTable(' + i + ')"' : '') + 'type="text" size="11" '
                                + 'id="polygonName' + i + 'Input"  value="' + polygons[i].name + '" /></td>' + "<td><input type='color'"
                                + ' onchange="setColor(' + i + ')" id="color' + i + '" value="' + pColor + '"/></td>' + "</tr>");
}

}

然后在HTML文件中有这两行:

<script src='spectrum.js'></script>
<link rel='stylesheet' href='spectrum.css' />

该文档说,如果javascript不起作用,则输入将降级为文本输入,但是我知道这不会成为问题,因为该项目的其余部分都可以正常工作。 任何帮助是极大的赞赏!

啊,你好!

因此,首先,频谱文档对此有些混乱,因此我花了一段时间才找到,但是一旦找到它,答案实际上是非常愚蠢的:

您没有使用频谱。

因此,首先,文档说:

如果只想为本机颜色输入提供一个polyfill,最简单的方法是创建具有颜色类型的输入。 一旦用户的浏览器支持本机颜色控件,它将选择使用其本机控件。 频谱文件

因此,这就是我们试图做的,而没有意识到我们并没有真正使用频谱。 取而代之的是,我们使用的是HTML 5颜色输入类型规范,IE不支持该规范(请参阅颜色输入类型支持

因此,要启用频谱,我们实际上需要调用频谱库,然后它才能工作:

$('#color' + id).spectrum({ color: pColor(, other-parameters-here)});

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM