molily: [Object HTMLCollection]

Beitrag lesen

Hallo,

alert(window.frames['dataframe'].window.document.getElementsByTagName("OLELE_meta").all);

mal nach zu schauen, was da ist, bekomme ich undefined zurück, dabei ist doch all ein Unterobjekt von document.

Nein, nicht gemäß dem W3C-DOM. all kennt Gecko nicht. Du musst mit reinen DOM-Methoden arbeiten.

Was sind denn die reinen DOM-Methoden. Ich hatte unter SELFHTML unter dem document-Objekt nachgeschaut und da stand dann auch all.

Erstens behandelt die Objektreferenz vor allem den JavaScript-Zugriff auf HTML-Dokumente, nicht generell auf alle möglichen XML-Dokumente. Nur weil Gecko ein document-Objekt für den Zugriff von HTML-Dokumenten auf XML-Dokumente zur Verfügung steht, heißt es nicht, dass alle Eigenschaften und Funktionen, die in SELFHTML für document beschrieben sind, auch in diesem Fall verfügbar sind.
Zweitens hast du in obigem Code gar nicht document.all angesprochen, sondern document.getElementsByTagName(...).all. Zuerst wird also document.getElementsByTagName(...) ausgeführt und dann das Unterobjekt all des Ergebnisses angesprochen. Und ein solches existiert nicht, weil es sich um einen Array mit Elementknoten handelt.
Drittens ist auf http://de.selfhtml.org/javascript/objekte/all.htm mehrfach erklärt, worum es sich bei document.all handelt: Um ein Konzept von Microsoft, was Gecko/Firefox sowieso nicht unterstützt. Schon gar nicht bei XML-Dokumenten und schon gar nicht bei der Rückgabe von getElementsByTagName.

Mit den reinen DOM-Methoden meinte ich diejenigen Teile des DOM, die für den Zugriff auf alle möglichen XML-Dokumente vorgesehen sind (»Core«). Dazu zählt unter anderem getElementsByTagName sowie die unter http://de.selfhtml.org/javascript/objekte/node.htm beschriebenen.

Also bin ich davon ausgegangen, dass das Standard ist.

Dann musst du gründlicher lesen, so steht das sicher nicht in SELFHTML.

Mathias