Document: adoptNode() メソッド

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015.

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

構文

js
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((imgEl) => {
  newParent.appendChild(document.adoptNode(imgEl));
});

メモ

外部の文書のノードを現在の文書に挿入できるようにするには、次のいずれかを実行してください。

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

仕様書

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

ブラウザーの互換性

BCD tables only load in the browser

関連情報