form要素内のフォーム部品の配列である document.forms[n].elements が本来持っているはずのないnodeNameやchildNodesといったプロパティを持っている。
- Category: Internet Explorer, Windows, ver.6, ver.6 Under
- Tag: childNodes, form, nodeName
例示
<script type="text/javascript">
<!--
function check() {
var obj = document.forms[0].elements;
if (obj.nodeName && obj.childNodes) {
alert(obj.nodeName + '¥n' + obj.childNodes.length);
} else {
alert('False.')
}
}
//-->
</script>
<form action="#" id="f1">
<div><input type="text" name="i1" /></div>
<div><input type="button" value="プロパティ参照" onclick="check()" /></div>
</form>
「プロパティ参照」ボタンを押すと問題のプロパティが有効であるかを判定します。有効であればノード名と子ノードの数を、そうでなければ「False.」の文字列をアラートで出力します。
実行結果
| UA | アラートの内容 |
|---|---|
| Moz1.0 | False. |
| WinIE6.0 | FORM¥n2 |
補足
このバグの原因は、documents.forms[n] と document.forms[n].elements が同じオブジェクトを参照しているためと考えられます。
修正状況
WinIE6.0でも同様の現象が発生します。


