DOM - Bug im MSIE
Andreas Schigold
- javascript
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
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
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
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
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