HTML DOM Document importNode() 方法
定义和用法
importNode()
方法从另一个文档中导入节点。
第二个参数设置为 true
时,子节点也将被导入。
提示
导入的节点不会从原始文档中删除。
导入的节点是原始节点的副本。
另请参阅:
实例
从 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 |
必需。
|
返回值
类型 | 描述 |
---|---|
节点 | 导入的节点。 |
抛出
如果 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 | 支持 | 支持 | 支持 | 支持 |