文件:adoptNode() 方法

Baseline 已廣泛支援

此特性已相當成熟,可在許多裝置和瀏覽器版本上使用。自 ⁨2015 年 7 月⁩以來,各瀏覽器均已提供此特性。

Document.adoptNode() 將一個 節點 從另一個 文件 遷移到當前文件中。被採納的節點及其子樹將從其原始文件(如果存在)中移除,並且它們的 ownerDocument 將被更改為當前文件。然後該節點就可以被插入到當前文件中。

語法

js
adoptNode(externalNode)

引數

externalNode

要採納的來自其他文件的節點。

返回值

在匯入文件的作用域內,被複制的 importedNode

呼叫此方法後,importedNodeexternalNode 是同一個物件。

注意: importedNodeNode.parentNodenull,因為它尚未被插入到文件樹中!

示例

js
const iframe = document.querySelector("iframe");
const iframeImages = iframe.contentDocument.querySelectorAll("img");
const newParent = document.getElementById("images");

iframeImages.forEach((imgEl) => {
  newParent.appendChild(document.adoptNode(imgEl));
});

注意

在將外部文件的節點插入到當前文件之前,應該執行以下操作之一:

有關 Node.ownerDocument 問題的更多資訊,請參閱 W3C DOM FAQ

規範

規範
DOM
# ref-for-dom-document-adoptnode①

瀏覽器相容性

另見