2005年10月13日
川俣晶の縁側ソフトウェア技術雑記total 4514 count

FireFoxにてJavaScriptを用いて、設定したCSSの色コードを取得すると設定文字列と異なる内容が返る

Written By: 川俣 晶連絡先

 ブラウザ間の非互換性は楽しいですね。

 思いがけない現象を次々と目撃できます。

現象 §

 JavaScriptにて、CSSの色コードを変更した上で、その値を取得すると、同じ文字列が返らない場合がある。

再現プログラム §

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html>

<head>

<title>Test Page</title>

<LINK REL="stylesheet" TYPE="text/css">

<script><!--

function onLoad()

{

    document.getElementById('body').style.backgroundColor = '#eeee22'

    alert(document.getElementById('body').style.backgroundColor);

}

// --></script>

</head>

<body onload="onLoad()">

<p id="body">Test</p>

</body>

</html>

動作結果 §

 Internet Explorer 6.0SP2と、Opera 8.5では、以下の値が出力されます。(設定値と同じ)

#eeee22

 Firefox 1.07では以下の値が出力されます。(設定値と異なる)

rgb(238, 238, 34)

 ちなみに、以下の行を追加すると、3つのブラウザのいずれも"string"を返します。

alert(typeof(document.getElementById('body').style.backgroundColor));

補足 §

 この問題の原因という以前に、backgroundColorの正しいあるべき挙動について未調査です。

 これがバグなのか正当な動作であるかは未調査ということです。

 ただ、いずれが正しいにせよ、どちらでも動作するように組まねばならないという状況に変わりはなく、結局やることは大差ないような気もします。

2005年10月27日追記 §

 より詳細には以下を参照。(Motohikoさん、ご連絡感謝)

Motohikoの日記 [Bug] Bug 110762 - element.style.backgroundColor = '#00ff00'

Facebook

キーワード【 川俣晶の縁側ソフトウェア技術雑記
【技術雑記】の次のコンテンツ
2005年
10月
17日
":"は正当なパスの一部だ! NTFSファイルシステムの複数ストリームをお手軽に体験する
3days 0 count
total 10900 count
【技術雑記】の前のコンテンツ
2005年
10月
13日
CSSの色指定をJavaScriptで代入する際、Operaでのみ色が違う問題
3days 0 count
total 4140 count

このコンテンツを書いた川俣 晶へメッセージを送る

[メッセージ送信フォームを利用する]

メッセージ送信フォームを利用することで、川俣 晶に対してメッセージを送ることができます。

この機能は、100%確実に川俣 晶へメッセージを伝達するものではなく、また、確実に川俣 晶よりの返事を得られるものではないことにご注意ください。

このコンテンツへトラックバックするためのURL

http://mag.autumn.org/tb.aspx/20051013175420
サイトの表紙【技術雑記】の表紙【技術雑記】のコンテンツ全リスト 【技術雑記】の入手全リスト 【技術雑記】のRSS1.0形式の情報このサイトの全キーワードリスト 印刷用ページ

管理者: 川俣 晶連絡先

Powered by MagSite2 Version 0.36 (Alpha-Test) Copyright (c) 2004-2021 Pie Dey.Co.,Ltd.