Horstlutz: IE6 kann getElementsByName nicht richtig

Beitrag lesen

Hallo,

ich muss ein bestehendes (fehlerhaftes) Layout bearbeiten und kann das id-Attribut nicht verändern und nicht benutzen. Daher muss ich Elemente per name-Attribut auswählen. Das funktioniert in modernen Browsern auch gut, nur der IE6 kanns nicht. Hier das Minimal-Beispiel:

<html>
<head>
<script type=text/javascript>
  function OnLoad() {
    if (document.getElementsByName('uu').length > 0)
      document.getElementsByName('uu')[0].style.display='block';
    else
      alert('keine Elemente');
  }
</script>
</head>
<body onload="OnLoad()">
  <p style="display:none;" name="uu">Text</p>
</body>
</html>

Firefox schreibt den Text (wie's sein soll) und der IE6 bringt die Fehlermeldung.

Wie gesagt: klar würde ich normalerweise die id nehmen, aber die ist tabu.

Irgendwelche richtigen Ideen? Ich werde erstmal einen Workaround mit einem zusätzlichen div drumrum (bei dem ich mir die id dann schon aussuchen kann) bauen, aber das ist doch doof. Wieso kann der IE das nicht? In der SelfHTML Beschreibung von getElementsByName steht, dass das der IE ab Version 5 kann.

Btw: wenn ich das Tag zu
<p style="display:none;" name="uu" id="uu">
oder
<p style="display:none;" id="uu">
verändere (also das id-Attribut mit dem gleichen Wert eintrage), dann gehts mit getElementsByName().

Danke.