hi,
ich möchte ein Element einer Seite in ein von dieser Seite geöffnetes Popup-Fenster kopieren. Dazu erstelle ich einen Clone des Elements und binde ihn dann per appendChild in das Popup ein.
Der "richtige" Weg wäre eigentlich document.importNode (bezogen auf das document des Popups) - um den Knoten erst mal in dessen Kontext zu importieren.
Im Firefox funktionieren alle drei Varianten,
Dass es da auch mit einem simplen cloneNode funktioniert, wundert mich.
im IE (6 u. 7) leider nur die Variante III mit innerHTML. Bei den anderen Varianten liefert der Befehl appendChild die Fehlermeldung "Schnittstelle nicht unterstützt".
Kennt jemand dieses Problem?
Der IE kennt immer noch kein document.importNode, und bei cloneNode bekommt man nach meiner Erfahrung immer diesen Fehler - obwohl es auch im AJAX-Umfeld oftmals empfohlen wird, um Elemente aus einem responseXML ins Hauptdokument einzufügen. Ich hab's bisher damit noch nicht hinbekommen.
Oder kennt jemand einen anderen Weg, Elemente in ein Popup zu kopieren? Die Variante III wollte ich eigentlich vermeiden.
Dürfte aber die sicherste und einfachste sein.
Alternative wäre, dass du den Knoten und seine Kindelemente, sowie deren Attribute rekursiv durchläufst, und damit im Kontext des Popup-documents mittels createElement/appendChild neu erzeugst. Aber erstens aufwendig, und zweitens auch wieder fehlerträchtig, weil der IE da auch seine Macken hat (bspw. ein per document.createElement("input") erzeugtes Element ist vom Typ text, und lässt sich auch im Nachhinein nicht mehr zu was anderem machen. Da müsste dann wieder die IE-only-Syntax document.createElement('<input type="xyz">') benutzt werden).
gruß,
wahsaga
/voodoo.css:
#GeorgeWBush { position:absolute; bottom:-6ft; }