Konsequenter im Sinne des DOMs wäre wohl dieser Ansatz:
// Popup öffnen, popup bezeichnet hier das nirgendwo in DOM standardisierte window-Objekt
var popup = window.open( '', 'bar', '[...]');
// In dem Popup ein HTML-Dokument erstellen.
popup.document = new HTMLDocument();
Du suchst `document.implementation.createDocument("http://www.w3.org/1999/xhtml", "html", null)`{:.language-javascript} ;)
> ~~~javascript
// In diesem Dokument den Div-Knoten erstellen und einfügen
> var div = popup.document.createElement( 'div');
> div.appendChild(popup.document.createTextNode( 'foo'));
> popup.document.documentElement.appendChild( div);
Das würde nicht gehen, weil dem jungfräulichen Dokument das html-Wurzelelement fehlt und somit documentElement nicht gesetzt wäre. Das ist ja gerade das Problem: Man könnte es zwar auch mit createElement erzeugen, aber wie gesagt ist document.appendChild nicht erlaubt. Aus der Sackgasse kenne ich keinen Ausweg.
Mathias