Document.getElementById () zwraca element o nazwie równej podanemu id
Wspomniałem wcześniej wto więc o zabawnym zachowaniu w IE6 / 7 (i niektórych wersjach Opery) w tymdocument.getElementById
może znaleźć element, któregoname
atrybut jest zdefiniowany, ale nieid
atrybut, taki, że
function f() {
document.getElementById("a1").value = ...;
}
...
<input name="a1" ...></input>
faktycznie działa w tych wersjach.
Przeszukałem znalezioną siećten raport o błędzie Chris Bloom, w którym użytkownik o nazwisku Milo van der Leij wskazuje następujące rzeczy (jak go polecił wta specyfikacja w3c):
W ich obronie: „Atrybuty id i name mają tę samą przestrzeń nazw”.
Co to znaczy, że atrybuty id i name mają tę samą przestrzeń nazw? Dlaczego ten warunek byłby wystarczający dla IE6 / 7 / Opera implementującego to zachowanie w ich silniku JS?