2009-09-11 41 views
1

我需要在兩種顏色之間閃爍:紅色和白色。jQuery不同瀏覽器的標準顏色定義是什麼?

我發現$targetcss('background-color','red')後,

$targetcss('background-color')值是不是紅色,而是rgb(255, 255, 255)

講究,有之間的空間 「」 和數字在Firefox中,

但IE中沒有空間。

我的代碼現在:

if(existingBgColor != 'rgb(255, 255, 255)') 
    $target.css('background-color', 'rgb(255, 255, 255)'); 
else 
    $target.css('background-color', 'white'); 

在Firefox其中一期工程,但沒有對IE瀏覽器。

當然,我可以把它改成這樣,使之適用於IE:

if(existingBgColor != 'rgb(255, 255, 255)' && existingBgColor != 'rgb(255,255,255)') 
    $target.css('background-color', 'rgb(255, 255, 255)'); 
else 
    $target.css('background-color', 'white'); 

但是什麼第三瀏覽器嗎?

有沒有標準的解決方案呢?

回答

-1

你可以簡單地測試前修剪出所有的空白:

existingColor = existingColor.replace(new RegExp(/[" "]/g), ""); //rgb(255,255,255) 

編輯:在評論認爲:十六進制值是跨瀏覽器,使用非常方便。但是如果你堅持rgb值,那麼上面的代碼將幫助你理清你的問題。然而。如果你開始喜歡$myElm.css("background-color", "red");寫的東西,你會得到一組全新的問題...

+0

事實上,我期待使用某種方式來使用「紅色」,「白色」等顏色,但似乎現在是快速修復。 – omg

+0

不好的選擇。 JavaScript中的正則表達式很慢。使用HEX(看看我的答案)。 – roosteronacid

+0

10-20個字符長度的字符串的正則表達式不慢。它不可能。你的回答並沒有回答他的問題,因爲他正在尋找方法來檢查rgb值。你給了他另一個選擇。 – peirix

0

可以用十六進制值?所以紅=#FF0000和白色= #FFFFFF

0

使用HEX

請看kuler以及。

+0

哦,不,它不工作! – omg

+0

你必須在數字前添加「#」 - 黑色爲「#000000」,白色爲「#FFFFFF」,紅色爲「#FF0000」,藍色爲「#0000FF」等。 – roosteronacid

0

您可以指定一個十六進制顏色值,例如#FF0000紅色

$target.css('background-color', '#FF0000'); // red background color 

這裏有一個Working Demo一起玩。檢查Firebug或Web Developer工具欄中的結果

相關問題