HTML DOM Document importNode() 方法

定義和用法

importNode() 方法從另一個文檔中導入節點。

第二個參數設置為 true 時,子節點也將被導入。

提示

導入的節點不會從原始文檔中刪除。

導入的節點是原始節點的副本。

另請參閱:

document.adoptNode() 方法

element.cloneNode() 方法

實例

從 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

必需。

  • false:僅導入節點本身。
  • true:子節點(后代)也被導入。

返回值

類型 描述
節點 導入的節點。

拋出

如果 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 支持 支持 支持 支持