title | short-title | slug | l10n | ||
---|---|---|---|---|---|
Document: adoptNode() メソッド |
adoptNode() |
Web/API/Document/adoptNode |
|
{{ ApiRef("DOM") }}
Document.adoptNode()
は、{{Glossary("node/dom", "ノード")}}を他の{{domxref("Document", "文書", "", "1")}}からメソッドの文書へ移譲します。
取り込まれたノードおよびそのサブツリーは(もしあれば)元の文書から削除され、 {{domxref("Node.ownerDocument", "ownerDocument")}} が現在の文書に変更されます。
その後、ノードを現在の文書に挿入することができます。
adoptNode(externalNode)
externalNode
- : 他の文書から移譲されるノードです。
インポートする文書のスコープ内にコピーされた importedNode
です。
このメソッドを呼び出した後、 importedNode
および externalNode
は同じオブジェクトになります。
メモ:
importedNode
の {{domxref("Node.parentNode")}} は、まだ文書ツリーに挿入されていないのでnull
です。
const iframe = document.querySelector("iframe");
const iframeImages = iframe.contentDocument.querySelectorAll("img");
const newParent = document.getElementById("images");
iframeImages.forEach((imgEl) => {
newParent.appendChild(document.adoptNode(imgEl));
});
外部の文書のノードを現在の文書に挿入できるようにするには、次のいずれかを実行してください。
- {{domXref("document.importNode()")}} を使用して複製する
document.adoptNode()
を使用して移譲する
{{domXref("Node.ownerDocument")}} の問題についての詳細は、W3C DOM FAQ を参照してください。
{{Specifications}}
{{Compat}}
- {{domxref("document.importNode()")}}