Hallo,
Nun haben Tests ergeben, dass bisher nur Mozilla dieses Element korrekt implementiert.
Nein.
Opera 8.51 nicht, Microsoft Internet Explorer 7.0.5292 Beta 2 nicht,
IE 6 nicht, und wer weiss welcher noch nicht?
Alle anderen Browser haben das Attribut zwar auch
Eben.
Und?
allerdings ist es in einem leeren per window.open geöffnetem Dokument (also eins komplett ohne inhalt) nicht verfügbar.
Wieso sollte es auch?
Weil es laut DOM2 (Nicht DOM, DOM2 ;) da sein sollte um ua das füllen leerer dokumente zu erleichtern.
Nach wie vor scheint also Mozilla der einzige echte DOM fähige Browser zu sein.
Das hat überhaupt nichts mit dem DOM zu tun. Ob in einem Dokument eines mit window.open() geöffneten neuen Fensters, das durch die URL »« bezeichnet ist, bereits ein rudimentärer HTML-DOM-Baum vorhanden ist, ist nirgendwo geregelt. Was auch immer ein Browser macht, gegen den DOM-Standard verstößt er nicht.
Wie gesagt, DOM2, nicht DOM. Den link dazu findest du im startpost dieses threads.
Wann und ob die anderen Browser das fixen, kann ich nur vermuten.
Wahrscheinlich nie, weil es kein Verstoß gegen das DOM ist.
DOM2, nicht DOM ;)
var div = document.createElement( 'div');
div.appendChild( document.createTextNode( 'foo'));
var popup = window.open( '', 'bar', '[...]');
popup.document.documentElement.appendChild( div);Wieso nimmst du selbstverständlich an, dass das Dokument bereits ein Wurzelelement hat?
document selbst ist das wurzelelent, allerdings hat man da (warum auch immer) keinen zugriff auf appendChild.
Und wie Struppi sagt, du kannst nicht einen Knoten im Kontext des einen Dokuments erzeugen und dann (ohne importNode) in einem anderen einfügen.
Kann ich sehr wohl, das objekt steht nämlich solange es nicht an ein dokument angehängt wird völlig frei (im sinne von: es sind keine abhängikeiten zu dem document vorhanden, über das ich createElement aufrufe)
createElement ist eine factory-funktion, das sagt dir uU sagt, dass ein object komplett neu generiert wird, ohne irgendeine form der abhängigkeit zu haben.
Du kannst das ganze aber auch selbst ausprobieren und ein element erzeugen. Dann guckst du nach dem attribut, wo drin sthet zu welchem dokument das gehört und es wird null sein. erst wenn du auch wirklich das element an ein anderes in document oder auch popup.document anhängst, ist das das elterndokument zu finden.
to it?
Es sollte ein Popup durch die Seite geöffnet werden, in dem "foo" zu lesen ist. Wenn "foo" erscheint, dann hat der Browser "documentElement" vollständig eingebaut. Wenn nicht, dann ist der Browser nicht vollständig DOM2 kompatibel.
Noch einmal, das hat mit dem W3C DOM nichts zu tun.
DOM2, nicht DOM ;)
documentElement ist verfügbar, wenn ein Wurzelelementknoten im Dokument verfügbar ist. Jeder Browser, der halbwegs DOM kann, setzt diese Regel korrekt um.
document selbst _ist_ das wurzelelement. aber eben ohne appendChild.
window.open("", "name") ist aber eine völlig andere Geschichte, die nicht im DOM geregelt ist. Überhaupt entstammt window.open() und der fensterübergreifende Zugriff einer ganz anderen Dimension, nämlich dem bis heute proprietären Netscape JavaScript.
DOM sagt ja auch nicht wie man ein fenster oder document, es nimmt einfach an, dass es da ist.
Also, bitte weiter mit den browsern die ihr auf platte habt die seite ausprobieren und das ergebniss hier reinschreiben (version nicht vergessen)
Danke, Piere.