山岡 (2010年6月10日 16:23) 産業システム部
みなさん、こんにちは。
昨今のシステム開発では、ブラウザのバージョンアップに伴い、 昔のブラウザでは動いていたシステムが新しいブラウザでは動かなくなるという ことがよくあります。 もちろん、デファクトスタンダードであるInternet Explorer(以下IE)も例外ではありません。
そこで今回は、IE7以前のシステムからIE8に対応する際に気をつけるべきことを JavaScriptに焦点を当てて1つだけ紹介します。
IE8では、getElementByIdメソッドの挙動が厳密になっています。 IE7までは、getElementByIdの対象になる属性は'Name'または'Id'でしたが、 IE8では'Id'属性のみが対象となっています。 (そもそも今までのIEの挙動がおかしかった、という解釈が正しいです) 下記がエラーになるコードとならないコードの例です。
■ HTML <input type="text" name="codeA"/> <input type="text" id="codeB"/>
■ JavaScript var codeA = document.getElementById('codeA').value; ← IE8ではエラーになります。 var codeB = document.getElementById('codeB').value; ← IE8でもエラーになりません。
【JavaScript】IE7以前のシステムからIE8に対応する
山岡 (2010年6月10日 16:23)
産業システム部
みなさん、こんにちは。
昨今のシステム開発では、ブラウザのバージョンアップに伴い、
昔のブラウザでは動いていたシステムが新しいブラウザでは動かなくなるという
ことがよくあります。
もちろん、デファクトスタンダードであるInternet Explorer(以下IE)も例外ではありません。
そこで今回は、IE7以前のシステムからIE8に対応する際に気をつけるべきことを
JavaScriptに焦点を当てて1つだけ紹介します。
IE8では、getElementByIdメソッドの挙動が厳密になっています。
IE7までは、getElementByIdの対象になる属性は'Name'または'Id'でしたが、
IE8では'Id'属性のみが対象となっています。
(そもそも今までのIEの挙動がおかしかった、という解釈が正しいです)
下記がエラーになるコードとならないコードの例です。
■ HTML
<input type="text" name="codeA"/>
<input type="text" id="codeB"/>
■ JavaScript
var codeA = document.getElementById('codeA').value; ← IE8ではエラーになります。
var codeB = document.getElementById('codeB').value; ← IE8でもエラーになりません。