2015-07-28 54 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)}); 
相關問題