Home > Windows > Internet Explorer > ver.6 Under フォーム部品集合がnodeName、childNodesプロパティを持っている

フォーム部品集合がnodeName、childNodesプロパティを持っている

form要素内のフォーム部品の配列である document.forms[n].elements が本来持っているはずのないnodeNameやchildNodesといったプロパティを持っている。

例示

<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でも同様の現象が発生します。

Home > Windows > Internet Explorer > ver.6 Under フォーム部品集合がnodeName、childNodesプロパティを持っている

Search
オススメ書籍
Feeds

Return to page top