Document.importNode()

Die Document-Methode importNode() erzeugt eine neue Kopie eines konkreten Knotens (Node) oder Dokumenten-Fragments (DocumentFragment) eines anderen Dokuments, so dass diese dann in das aktuelle Dokument eingef√ľgt werden kann.  An dieser Stelle ist es noch nicht im Dokumentenbaum eingef√ľgt, um das zu erreichen, muss eine Methode wie appendChild() oder insertBefore() aufgerufen werden.

Syntax

var knoten = document.importNode(externerKnoten, deep);
externerKnoten
Der neue Knoten oder das neue Dokumenten-Fragment, welches in das aktuelle Dokument importiert werden soll. Nach dem Import ist der Elternknoten null, da der neue Knoten noch nicht in den Dokumentenbaum eingef√ľgt wurde.
deep
Ein boolscher Wert der anzeigt, ob der komplette Unterbaum vonexternalNode importiert werden soll. Ist dieser Parameter true, werden externalNode so wie all seine Nachfahren kopiert; Ist er false, wird nur der einzelne Knoten, externalNode, importiert.

In der DOM4-Spezifikation, ist deep als optionales Argument angef√ľhrt. Wird es weggelassen, verh√§lt sich die Methode als ob der Wert von deeptrue w√§re, was zu standardm√§√üigen tiefen Kopieren f√ľhrt. Um flach zu kopieren, muss deep explizit auf false gesetzt werden.

Dieses Verhalten wurde in der letzten Spezifikation ge√§ndert, der Wert von deep wird bei Weglassen auf false gesetzt. Obwohl es immer noch optional ist, empfehlen wir f√ľr Vorw√§rts- und R√ľckw√§rtskompatibilit√§t das deep-Argument immer explizit anzugeben. Seit Gecko 28.0 (Firefox 28 / Thunderbird 28 / SeaMonkey 2.25 / Firefox OS 1.3) ist eine Konsolenwarnung implementiert, wenn das Argument weggelassen wird. Seit Gecko 29.0 (Firefox 29 / Thunderbird 29 / SeaMonkey 2.26)) ist flaches Kopieren das Standardverhalten.

Beispiel

var iframe = document.getElementsByTagName("iframe")[0];
var oldNode = iframe.contentWindow.document.getElementById("myNode");
var newNode = document.importNode(oldNode, true);
document.getElementById("container").appendChild(newNode);

Anmerkungen

Der Originalknoten wird nicht aus dem Ursprungsdokument entfernt. Der importierte Knoten ist des Weiteren eine Kopie des urspr√ľnglichen.

 

Nodes from external documents should be cloned using document.importNode() (or adopted using document.adoptNode()) before they can be inserted into the current document. For more on the Node.ownerDocument issues, see the W3C DOM FAQ.

Firefox doesn't currently enforce this rule (it did for a while during the development of Firefox 3, but too many sites break when this rule is enforced). We encourage Web developers to fix their code to follow this rule for improved future compatibility.

 

Spezifikationen

Browserkompatibilität

BCD tables only load in the browser

Siehe auch