Document: adoptNode() メソッド
Baseline
広く利用可能
この機能は広く実装されており、多くのバージョンの端末やブラウザーで動作します。2015年7月以降、すべてのブラウザーで利用可能です。
Document.adoptNode() は、ノードを他の文書からメソッドの文書へ移譲します。
取り込まれたノードおよびそのサブツリーは(もしあれば)元の文書から削除され、 ownerDocument が現在の文書に変更されます。
その後、ノードを現在の文書に挿入することができます。
構文
js
adoptNode(externalNode)
引数
externalNode-
他の文書から移譲されるノードです。
返値
インポートする文書のスコープ内にコピーされた importedNode です。
このメソッドを呼び出した後、 importedNode および externalNode は同じオブジェクトになります。
メモ:
importedNode の Node.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));
});
メモ
外部の文書のノードを現在の文書に挿入できるようにするには、次のいずれかを実行してください。
document.importNode()を使用して複製するdocument.adoptNode()を使用して移譲する
Node.ownerDocument の問題についての詳細は、W3C DOM FAQ を参照してください。
仕様書
| 仕様書 |
|---|
| DOM> # ref-for-dom-document-adoptnode①> |