2015-07-28 57 views
0

我在我正在使用的JavaScript项目中使用光谱颜色选择器。 https://bgrins.github.io/spectrum/ 它在FireFox中正常工作,但在Internet Explorer中无法正常工作。花哨的颜色选择器弹出降级为简单的文本输入字段。下面是代码,创建输入字段的部分:光谱颜色选择器不工作在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不工作,但我知道这不能成为问题意义的项目的其余部分工作正常。任何帮助是极大的赞赏!

回答

0

哦嗨!

所以,首先,频谱文档是有点混乱,这个所以我花了一段时间来寻找,但一旦你找到它的答案居然是真的,真的很愚蠢:

您未使用频谱。

所以,首先,文件说:

如果你只是想为本地色彩输入填充工具,最简单的方法是创建色彩类型的输入。一旦用户的浏览器支持本机色彩控制,它将选择使用其本地控制。 Spectrum Docs

所以,这就是我们试图做的事,却没有意识到我们并没有真正使用频谱。相反,我们使用的HTML 5颜色输入类型规范,这是不支持的IE浏览器(请参阅color input type support

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

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