2011-03-25 93 views
0

可能重複:
Javascript function to convert color names to hex codes是否可以確定指定顏色的十六進制值?

是否可以檢索或計算該瀏覽器當前使用名爲顏色的十六進制值?比如我想能夠做到像下面這樣:

(HTML)

<div id="container" style="background-color: lightgreen"></div> 

(JavaScript的)

var container = document.getElementById("container"); 
var colorAsHex = getHexColor(container, "background-color"); 

充其量我希望能夠找到我剛剛錯過的jQuery解決方案。最糟糕的是,只要我可以覆蓋4個主要瀏覽器,我就可以使用瀏覽器特定的黑客程序。

+0

謝謝。鏈接問題似乎適用。 – DuckMaestro 2011-03-25 06:36:52

+0

順便說一句,酷綽號;-) – zerkms 2011-03-25 06:38:39

回答

3

$('div').css('background-color')似乎是工作......看到這個例子link

+0

哇,有趣。它看起來像(從簡單的測試),在jQuery 1.4.2中它返回「綠色」,但在jQuery 1.4.4 +它返回RGB組件。 – DuckMaestro 2011-03-25 06:40:17

1
var namedColor = "lightgreen"; 
var rgbColor = $("<div></div>").css("background-color", namedColor).css("background-color"); 
var match = rgbColor.match(/(\d+),\s*(\d+),\s*(\d+)/); 
var value = 
    (+match[1] << 16) + 
    (+match[2] << 8) + 
    (+match[3] << 0); 
var hexColor = value.toString(16); 
while (hexColor.length < 6) { 
    hexColor = "0" + hexColor; 
} 
console.log("#" + hexColor) 

演示herehere