概述

将外部文档的一个节点拷贝一份,然后可以把这个拷贝的节点插入到当前文档中.

语法

var node = document.importNode(externalNode, deep);
node
导入当前文档的新节点. 新节点的 parentNodenull, 因为它还没有插入当前文档的文档树中,属于游离状态.
externalNode
将要从外部文档导入的节点.
deep 可选
一个布尔值,表明是否要导入节点的后代节点.

注意: 在DOM4规范中 (实现于Gecko 10.0 (Firefox 10.0 / Thunderbird 10.0 / SeaMonkey 2.7)) ,deep 是个可选的参数. 如果省略不写,则使用默认值 true, 表示深度克隆. 如果你想使用浅克隆,则传入false参数.

在没有实现DOM4的浏览器中, 这个参数不可以省略.

例子

var iframe = document.getElementsByTagName("iframe")[0];
var oldNode = iframe.contentDocument.getElementById("myNode");
var newNode = document.importNode(oldNode, true);
document.getElementById("container").appendChild(newNode);

备注

源节点不会从外部文档中删除,被导入的节点是源节点的一个拷贝.

将外部文档的节点插入当前文档之前,你必须使用 document.importNode() 从外部文档导入源节点,或者使用 document.adoptNode()导入源节点, 想要了解更多的 Node.ownerDocument 问题,请参考 W3C DOM FAQ.

即使你不执行导入动作,就执行插入外部文档中的节点.Firefox目前也不会报错(如果严格按标准执行,很多已有的网站都无法正常运行). 我们鼓励开发者严格按标准修改自己已有的不符合上述标准的代码.

浏览器兼容性

We're converting our compatibility data into a machine-readable JSON format. This compatibility table still uses the old format, because we haven't yet converted the data it contains. Find out how you can help!

Feature Chrome Firefox (Gecko) Internet Explorer Opera Safari
DOM 2 version (Yes) 1.0 (1.7 or earlier) 9.0 9.0 (Yes)
DOM 4 version
(deep optional)
(Yes) 10 (10) 未实现 未实现 Nightly build
Feature Android Firefox Mobile (Gecko) IE Mobile Opera Mobile Safari Mobile
DOM 2 version ? 1.0 (1) ? ? ?
DOM 4 version
(deep optional)
? 10.0 (10) ? ? ?

规范

相关介绍

文档标签和贡献者

 此页面的贡献者: teoli, khalid32, Sheppy, ziyunfei
 最后编辑者: khalid32,