Document: importNode()-Methode
Die importNode()
-Methode des Document
-Objekts erstellt eine Kopie eines Node
oder eines DocumentFragment
aus einem anderen Dokument, um sie später in das aktuelle Dokument einzufügen.
Der importierte Knoten ist noch nicht im Dokumentbaum enthalten. Um ihn einzufügen, müssen Sie eine Einfügemethode wie appendChild()
oder insertBefore()
mit einem Knoten aufrufen, der sich bereits im Dokumentbaum befindet.
Im Gegensatz zu document.adoptNode()
wird der ursprüngliche Knoten nicht aus seinem ursprünglichen Dokument entfernt. Der importierte Knoten ist ein Klon des Originals.
Syntax
importNode(externalNode)
importNode(externalNode, deep)
Parameter
externalNode
-
Der externe
Node
oderDocumentFragment
, der in das aktuelle Dokument importiert werden soll. deep
Optional-
Ein boolescher Parameter, dessen Standardwert
false
ist, der steuert, ob der gesamte DOM-Unterbaum desexternalNode
beim Import eingeschlossen werden soll.-
Wenn
deep
auftrue
gesetzt ist, werdenexternalNode
und alle seine Nachkommen kopiert. -
Wenn
deep
auffalse
gesetzt ist, wird nurexternalNode
importiert — der neue Knoten hat keine Kinder.
-
Wenn
Rückgabewert
Der kopierte importedNode
im Kontext des importierenden Dokuments.
Hinweis: importedNode
's Node.parentNode
ist null
, da es noch nicht in den Dokumentbaum eingefügt wurde!
Beispiele
const iframe = document.querySelector("iframe");
const oldNode = iframe.contentWindow.document.getElementById("myNode");
const newNode = document.importNode(oldNode, true);
document.getElementById("container").appendChild(newNode);
Hinweise
Bevor sie in das aktuelle Dokument eingefügt werden können, sollten Knoten aus externen Dokumenten entweder:
- geklont werden, indem
document.importNode()
verwendet wird; oder - adoptiert werden, indem
document.adoptNode()
verwendet wird.
Hinweis: Obwohl Firefox diese Regel derzeit nicht durchsetzt, empfehlen wir Ihnen, diese Regel für eine verbesserte zukünftige Kompatibilität zu befolgen.
Für mehr Informationen zu Node.ownerDocument
--Problemen, siehe die W3C DOM FAQ.
Spezifikationen
Specification |
---|
DOM Standard # ref-for-dom-document-importnode① |
Browser-Kompatibilität
BCD tables only load in the browser
Siehe auch
document.adoptNode()
, die sich sehr ähnlich zu dieser Methode verhältNode.appendChild()
Node.insertBefore()