Andreas Schigold: DOM - Bug im MSIE

Hallo an alle Forumer,

mir ist da mal wieder eine Sache aufgefallen, möglicherweise ein Bug im MSIE. Wollt mal wissen, ob das Problem bekannt ist oder ob es da noch mehrere Bugs gibt.

document.getElementsByName findet keine DIV Objekte, folgendes gekürztes Beispiel:

<div name="myName" ...>...</div>
<iframe name="myName"...>...</iframe>

javascript:

var obj = document.getElementsByName('myName');
alert(obj.length+','+obj[0].nodeType+','+obj[1].nodeType);

//// Output in Netscape: "2,DIV,IFRAME"
//// Output in MSIE: "1,IFRAME,undefined"

Nicht falsch verstehen, Problem ist gelöst - bin dann einfach über die ID's gegangen:

<div id="myName0" ...>...</div>
<iframe id="myName1"...>...</iframe>

javascript:

var obj = new Array(2);
for (i=0 ; i<2 ; i++) {
  obj[i] = document.getElementById('myName'+String(i));
}

alert(obj.length+','+obj[0].nodeType+','+obj[1].nodeType);

So ist es halt nur um Längen umständlicher

Gruß
Andreas

  1. Hallo,

    mir ist da mal wieder eine Sache aufgefallen, möglicherweise ein Bug im MSIE. Wollt mal wissen, ob das Problem bekannt ist oder ob es da noch mehrere Bugs gibt.

    document.getElementsByName findet keine DIV Objekte, folgendes gekürztes Beispiel:

    Elemente, die kein Attribut name haben, kann man auch nicht "ByName" ansprechen.

    MfG, Thomas

    1. Sup!

      Elemente, die kein Attribut name haben, kann man auch nicht "ByName" ansprechen.

      Sie haben aber doch in seinem Beispiel ein Attribut "name"...

      Gruesse,

      Bio

      1. Sup!

        Elemente, die kein Attribut name haben, kann man auch nicht "ByName" ansprechen.

        Sie haben aber doch in seinem Beispiel ein Attribut "name"...

        Gruesse,

        Bio

        aber zu div gibt es kein Attribut namens "name", also MSIE ignoriert es deshalb.
        siehe
        http://selfhtml.teamone.de/javascript/objekte/htmlelemente.htm#div

        bzw.
        http://selfhtml.teamone.de/javascript/objekte/htmlelemente.htm#universaleigenschaften
        Grüße zurück,
        Andreas

    2. Danke Thomas,

      hast ja recht, ich dachte halt "name" wäre ein Universalattribut.
      Mit anderen Worten: Netscape spielt also die Extrawurst.

      Hätte es aber gut gebrauchen können, weil so könnte man unabhängig von der Struktur der HTML-Datei mehrere verschiedene Objekte über einen Namen ansprechen können.

      Der eleganteste Weg wäre dann wohl, man würde diese Objektorientierung nutzen. Aber die finde ich in Javascript irgendwie komisch gelöst. Die in C++ oder Java ist um Meilen besser und übersichtlicher.

      Danke nochmal für den Hinweis,
      Gruß,
      Andreas