文档:adoptNode() 方法

Baseline 已广泛支持

此特性已相当成熟,可在许多设备和浏览器版本上使用。自 ⁨2015 年 7 月⁩以来,各浏览器均已提供此特性。

Document.adoptNode() 将一个 节点 从另一个 文档 迁移到当前文档中。被采纳的节点及其子树将从其原始文档(如果存在)中移除,并且它们的 ownerDocument 将被更改为当前文档。然后该节点就可以被插入到当前文档中。

语法

js
adoptNode(externalNode)

参数

externalNode

要采纳的来自其他文档的节点。

返回值

在导入文档的作用域内,被复制的 importedNode

调用此方法后,importedNodeexternalNode 是同一个对象。

注意: importedNodeNode.parentNodenull,因为它尚未被插入到文档树中!

示例

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

iframeImages.forEach((imgEl) => {
  newParent.appendChild(document.adoptNode(imgEl));
});

注意

在将外部文档的节点插入到当前文档之前,应该执行以下操作之一:

有关 Node.ownerDocument 问题的更多信息,请参阅 W3C DOM FAQ

规范

规范
DOM
# ref-for-dom-document-adoptnode①

浏览器兼容性

另见