概述
将外部文档的一个节点拷贝一份,然后可以把这个拷贝的节点插入到当前文档中.
语法
var node = document.importNode(externalNode, deep);
-
node
-
导入当前文档的新节点. 新节点的
parentNode
是null
, 因为它还没有插入当前文档的文档树中,属于游离状态. -
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目前也不会报错(如果严格按标准执行,很多已有的网站都无法正常运行). 我们鼓励开发者严格按标准修改自己已有的不符合上述标准的代码.
浏览器兼容性
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) | ? | ? | ? |