概述

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

语法

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目前也不会报错(如果严格按标准执行,很多已有的网站都无法正常运行). 我们鼓励开发者严格按标准修改自己已有的不符合上述标准的代码.

 

浏览器兼容性

Update compatibility data on GitHub
DesktopMobile
ChromeEdgeFirefoxInternet ExplorerOperaSafariAndroid webviewChrome for AndroidEdge MobileFirefox for AndroidOpera for AndroidSafari on iOSSamsung Internet
importNodeChrome Full support 1Edge Full support 12Firefox Full support 4IE Full support 9Opera Full support 9Safari Full support YesWebView Android Full support YesChrome Android Full support YesEdge Mobile Full support 12Firefox Android Full support 4Opera Android Full support 9Safari iOS Full support YesSamsung Internet Android ?
deep parameter optionalChrome Full support YesEdge Full support YesFirefox Full support 10IE No support NoOpera Full support YesSafari Full support YesWebView Android Full support YesChrome Android Full support YesEdge Mobile Full support YesFirefox Android Full support 10Opera Android Full support YesSafari iOS Full support YesSamsung Internet Android ?

Legend

Full support  
Full support
No support  
No support
Compatibility unknown  
Compatibility unknown

规范

相关介绍

文档标签和贡献者

此页面的贡献者: mdnwebdocs-bot, fscholz, wbamberg, teoli, khalid32, Sheppy, ziyunfei
最后编辑者: mdnwebdocs-bot,