DOM:document.importNode
出典: MDC
目次 |
[編集] 概要
外部ドキュメントからノードのコピーを作成し、現在のドキュメントに挿入できるようにします。
[編集] 構文
var node = document.importNode(externalNode, deep);
-
nodeはドキュメントにインポートされた新しいノードです。 この新しいノードはまだドキュメントツリーに挿入されていないので、parentNodeはnullです。 -
externalNodeはインポートする対象となる他のドキュメントのノードです。 -
deepはノードの子をインポートするかどうかを示す真偽値です。
[編集] 例
var iframe = document.getElementsByTagName("iframe")[0];
var oldNode = iframe.contentDocument.getElementById("myNode");
var newNode = document.importNode(oldNode,true);
document.getElementById("container").appendChild(newNode);
[編集] 注記
インポート元のノードは元のドキュメントから削除されません。インポートされるノードは、元のノードのクローンです。
外部ドキュメントからのノードは、現在のドキュメントに挿入する前に importNode() を使ってクローンを作る (あるいは adoptNode() を使って取り込む) べきです。ownerDocument 問題の詳細については W3C DOM FAQ を参照してください。
Firefox では現在このルールを強制していません。Firefox 3 の開発中には強制していた時期もありましたが、このルールを強制すると多くのサイトが機能しなくなってしまうため取りやめになりました。将来的な互換性を高めるため、Web 開発者にはこのルールに従ってコードを修正することを推奨します。