- ベストアンサー
ブラウザ毎の動き backgroundColor
各ブラウザでの動作が違う件について教えてもらえないでしょうか? JavaScriptにて 「val = id.style.backgroundColor」 と記述したときの動作なのですが、 IEではカラーコード(数値)で帰ってきます。 FireFoxではカラーコード(文字列'RGG( R, G, B)')のように帰ってきます。 個人的にはIEのように数値で帰ってきてくれたほうがうれしいのです。 ですのでFireFoxの場合には数値に変換する処理を入れたらいいとは思いました。 ですが、他のブラウザでも帰ってくる方法違うとしたら困ってきます。 どのブラウザでも数値で取得するいい方法はないでしょうか?
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
FireFoxにあわせたほうがいいのでは? IEがおかしいんです。 FireFoxのカラーコードは標準ですよ。
その他の回答 (1)
- himajin100000
- ベストアンサー率54% (1660/3060)
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja"> <head> <title>Q4061795 TestCase 1</title> <style type="text/css"> p{ background-color:rgb(255,0,0); } </style> <script type="text/javascript"> function sample1(){ alert(window.getComputedStyle(document.getElementById("hoge"),null).getPropertyCSSValue("background-color").getRGBColorValue().green.getFloatValue(1)); } function sample2(){ alert(window.getComputedStyle(document.getElementById("fuga"),null).getPropertyCSSValue("background-color").getRGBColorValue().red.getFloatValue(1)); } </script> </head> <body onload="sample1();"> <p id="hoge" style="background-color:rgb(0,255,0);">あああ</p> <p id="fuga" onclick="sample2();">いいい</p> </body> </html> <!-- 当方IE8なせいか再現せず,望みの状態かわかりませんが, 一応 http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-RGBColor Safari 3.1.1とMinefield 3.1a1pre(Firefox trunk)では Interface RGBColorを用いて,style要素,style属性共にR,G,Bそれぞれの値が取得できるようです。IE8 Beta 1では失敗しました。Opera 9.5で取得できない理由は不明です。 -->
お礼
回答ありがとうございます。 ですが自己解決しておりました・・・。 その状態で締め切るのを忘れてました、すみません。
お礼
FireFoxの方が正しかったのですか・・・。 それではそのようにさせていただきます。 あと、ついでに質問させてもらいます。 文字列'RGB( R, G, B)'で帰ってくるものを数値に置き換える関数はあるのでしょうか? なければ自作しますが・・・。