document.importNode
将外部文档的一个节点拷贝一份,然后可以把这个拷贝的节点插入到当前文档中。
语法
js
importNode(externalNode)
importNode(externalNode, deep)
externalNode
-
导入当前文档的外部
Node
或DocumentFragment
。 deep
可选-
一个布尔值,默认为
false
。表明是否要导入externalNode
的整个 DOM 子树。deep
设置为true
,则拷贝externalNode
和它的所有后代。deep
设置为false
,则仅拷贝externalNode
——新的节点没有后代。
示例
js
const iframe = document.querySelector("iframe");
const oldNode = iframe.contentWindow.document.getElementById("myNode");
const newNode = document.importNode(oldNode, true);
document.getElementById("container").appendChild(newNode);
备注
源节点不会从外部文档中删除,被导入的节点是源节点的一个拷贝。
将外部文档的节点插入当前文档之前,你必须使用 document.importNode()
从外部文档导入源节点,或者使用 document.adoptNode()
导入源节点,想要了解更多的 Node.ownerDocument
问题,请参考 W3C DOM FAQ.
即使你不执行导入动作,就执行插入外部文档中的节点.Firefox 目前也不会报错 (如果严格按标准执行,很多已有的网站都无法正常运行). 我们鼓励开发者严格按标准修改自己已有的不符合上述标准的代码。
浏览器兼容性
BCD tables only load in the browser