HTML DOM Document importNode() 方法

定义和用法

importNode() 方法从另一个文档中导入节点。

第二个参数设置为 true 时,子节点也将被导入。

提示

导入的节点不会从原始文档中删除。

导入的节点是原始节点的副本。

另请参阅:

document.adoptNode() 方法

element.cloneNode() 方法

实例

从 iframe(另一个文档)导入第一个 <h1> 元素:

const frame = document.getElementsById("myFrame");
const h1 = frame.contentWindow.document.getElementsByTagName("H1")[0];
const node = document.importNode(h1, true);

亲自试一试

语法

document.importNode(node, deep)

参数

参数 描述
node 必需。来自另一个文档的节点。
deep

必需。

  • false:仅导入节点本身。
  • true:子节点(后代)也被导入。

返回值

类型 描述
节点 导入的节点。

抛出

如果 node 是 Document 节点或 DocumentType 节点,该方法将抛出代码为 NOT_SUPPORTED_ERR 的 DOMException 异常,因为无法导入这些类型的节点。

技术细节

该方法的 node 参数是另一个文档中定义的节点,返回值是适合插入该文档的节点的副本。如果 deep 值为 true,那么还要复制该节点的所有子孙节点。无论如何,原始节点和它的子孙节点都不会被修改。返回的副本的 ownerDocument 属性被设置为当前文档,但 parentNode 属性为 null,因为它还没有插入文档。在原始节点树中注册的事件监听器函数不会被复制。

当导入 Element 节点时,只有在源文档中明确设置的属性才会被导入。当导入 Attr 节点时,将自动把它的 specified 属性设置为 true。

浏览器支持

document.importNode() 是 DOM Level 2 (2001) 特性。

所有浏览器都支持它:

Chrome IE Edge Firefox Safari Opera
Chrome IE Edge Firefox Safari Opera
支持 9-11 支持 支持 支持 支持