単純なHTML5DOM処理をMSIE9で機能させるのに問題があります。DOCTYPEタグがなくても機能します。ただし、DOCTYPE html(html5を示す)が含まれているため、MSIE9はそれを処理しません。html5として機能するようにこれを行うことができる別の方法はありますか?
このコードは、DOMノードを取得し、そこからタグ名で要素を取得することにより、nodeListを作成しようとします。簡単なテストは、nodeList.lengthを表示することです。これは、私が構築しているアプリケーションでより大きな問題と見なしているものの小さなサンプルです。しかし、この小さなコードは、私のアプリケーション全体を紹介するよりも、ここで紹介する方がよいと思います。
次のコードは、Chrome、Firefox、Operaなどで機能しますが、MSIE 9では機能しません。オンラインでもあるので、このリンクをクリックして(実行している限り)試してみてください。次に、アドレスをコピーして他のブラウザで試してください。「<!DOCTYPEhtml>」も削除しました。MSIEで動作します。しかし、その場合、ブラウザはそれがhtml5であることを認識しません(私が正しく理解している場合)。
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<script type="text/javascript">
function setOptions () {
var ndiv = document.getElementById("products");
var OptionList = ndiv.getElementsByTagName("option");
document.getElementById("dump").innerHTML = "OptionList.length " + OptionList.length;
}
</script>
</head>
<body onload="setOptions()">
<br/><br/><br/>
<div id="dump"></div>
<div id="products" style="display:none">
<option>MOTOR</option>
<option>CHASSI</option>
<option>ELECTRIC</option>
<option>BRAKES</option>
<option>TIRES</option>
</div>
</body>
</html>