Document.adoptNode()

Document.adoptNode() は、ノードを他の文書からメソッドの文書へ移動します。取り込まれたノードおよびそのサブツリーは (もしあれば) 元の文書から削除され、 ownerDocument が現在の文書に変更されます。その後、ノードを現在の文書に挿入することができます。

構文

const importedNode = document.adoptNode(externalNode);

引数

externalNode

他の文書から取り込まれるノードです。

返値

インポートする文書のスコープ内にコピーされた importedNode

このメソッドを呼び出した後、 importedNode および externalNode は同じオブジェクトになります。

メモ: importedNodeNode.parentNode は、まだ文書ツリーに挿入されていないので null です。

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

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

外部の文書から取り込まれるノードは、現在の文書に挿入する前に、次のいずれかを実行してください。

メモ: ベストプラクティス: Firefox は現在はこの規則を強制しませんが、将来の互換性を向上するためにこの規則に従うことを強くお勧めします。

Node.ownerDocument の問題についての詳細は、 W3C DOM FAQ を参照してください。

仕様書

Specification
DOM Standard
# ref-for-dom-document-adoptnode①

ブラウザーの互換性

BCD tables only load in the browser

関連情報