以前、この SOで、属性が定義されているが属性が定義されていないdocument.getElementById
要素を見つけることができるIE6/7 (および Opera の一部のバージョン) の奇妙な動作について言及しました。name
id
function f() {
document.getElementById("a1").value = ...;
}
...
<input name="a1" ...></input>
これらのバージョンで実際に動作します。
ネットを検索すると、 Chris Bloom によるこのバグ レポートが見つかりました。Milo van der Leij という名前のユーザーが次のことを指摘しています (この w3c 仕様で彼が言及しているように)。
彼らの弁護では、「id 属性と name 属性は同じ名前空間を共有しています。」
id 属性と name 属性が同じ名前空間を共有しているとはどういう意味ですか? IE6/7/Opera がこの動作を JS エンジンに実装するのに、この条件で十分なのはなぜですか?