`Document.adoptNode()` transfers a node from another document into the method's document. The adopted node and its subtree is removed from its original document (if any), and its `ownerDocument` is changed to the current document. The node can then be inserted into the current document.

## Syntax

``````const importedNode = document.adoptNode(externalNode);
``````

### Parameters

`externalNode`
The node from another document to be adopted.

### Return value

The copied `importedNode` in the scope of the importing document.

After calling this method, `importedNode` and `externalNode` are the same object.

Note: `importedNode`'s `Node.parentNode` is `null`, since it has not yet been inserted into the document tree!

## Example

``````const iframe = document.querySelector('iframe');
const iframeImages = iframe.contentDocument.querySelectorAll('img');
const newParent = document.getElementById('images');

iframeImages.forEach(function(imgEl) {
});
``````

## Notes

Before they can be inserted into the current document, nodes from external documents should either be:

Best Practice: Although Firefox doesn't currently enforce this rule, we encourage you to follow this rule for improved future compatibility.

For more on the `Node.ownerDocument` issues, see the W3C DOM FAQ.

## Specifications

Specification Status Comment
DOM
The definition of 'document.adoptNode' in that specification.
Living Standard

## Browser compatibility

BCD tables only load in the browser