Document: importNode() 方法

Document 对象的 importNode() 方法创建一个来自另一个文档的 NodeDocumentFragment 的副本,以便稍后插入到当前文档中。

导入的节点尚未包含在文档树中。 要将其包含在内,您需要使用一个当前在文档树中的节点调用插入方法,例如 appendChild()insertBefore()

document.adoptNode() 不同,原始节点不会从其原始文档中删除。 导入的节点是原始节点的克隆。

语法

js
importNode(externalNode)
importNode(externalNode, deep)

参数

externalNode

要导入到当前文档中的外部 NodeDocumentFragment

deep 可选

一个布尔标志,其默认值为 false,它控制是否将 externalNode 的整个 DOM 子树包含在导入中。

  • 如果 deep 设置为 true,则 externalNode 及其所有后代都被复制。
  • 如果 deep 设置为 false,则仅导入 externalNode - 新节点没有子节点。

返回值

导入文档范围内复制的 importedNode

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

示例

js
const iframe = document.querySelector("iframe");
const oldNode = iframe.contentWindow.document.getElementById("myNode");
const newNode = document.importNode(oldNode, true);
document.getElementById("container").appendChild(newNode);

注意

在可以将其插入到当前文档之前,来自外部文档的节点应该要么

注意: 虽然 Firefox 目前没有强制执行此规则,但我们鼓励您遵循此规则以提高未来的兼容性。

有关 Node.ownerDocument 问题的更多信息,请参阅 W3C DOM 常见问题解答。

规范

规范
DOM 标准
# ref-for-dom-document-importnode①

浏览器兼容性

BCD 表格仅在浏览器中加载

另请参阅