Document: adoptNode() method
Baseline Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015.
Document.adoptNode() transfers anode from anotherdocument into the method's document.The adopted node and its subtree are removed from their original document (if any), and theirownerDocument is changed to the current document.The node can then be inserted into the current document.
In this article
Syntax
adoptNode(externalNode)Parameters
externalNodeThe node from another document to be adopted.
Return value
The copiedimportedNode in the scope of the importing document.
After calling this method,importedNode andexternalNode are the same object.
Note:importedNode'sNode.parentNode isnull, since it has not yet beeninserted into the document tree!
Examples
const iframe = document.querySelector("iframe");const iframeImages = iframe.contentDocument.querySelectorAll("img");const newParent = document.getElementById("images");iframeImages.forEach((imgEl) => { newParent.appendChild(document.adoptNode(imgEl));});Notes
Before they can be inserted into the current document, nodes from external documentsshould either be:
- cloned using
document.importNode(); or - adopted using
document.adoptNode().
For more on theNode.ownerDocument issues, see theW3C DOM FAQ.
Specifications
| Specification |
|---|
| DOM> # ref-for-dom-document-adoptnode①> |