HTML DOM ドキュメント importNode() メソッド

定義と使用法

importNode() メソッドは別のドキュメントからノードをインポートします。

セカンドパラメータは true の場合、子节点もインポートされます。

ヒント

インポートされたノードは元のドキュメントから削除されません。

インポートされたノードは元のノードのコピーです。

参照:

document.adoptNode()メソッド

element.cloneNode()メソッド

iframe(別のドキュメント)から最初の<h1>要素をインポートします:

const frame = document.getElementsById("myFrame");
const h1 = frame.contentWindow.document.getElementsByTagName("H1")[0];
const node = document.importNode(h1, true);

実際に試してみてください

構文

document.importNode(node, deep)

パラメータ

パラメータ 説明
node 必須。別のドキュメントからのノード。
deep

必須。

  • false:ノード自体のみインポートされます。
  • true:子节点(後裔)もインポートされます。

返り値

タイプ 説明
ノード インポートされたノード

が投げられます。

の場合 node DocumentノードまたはDocumentTypeノードで、このメソッドはコード NOT_SUPPORTED_ERR のDOMException例外が発生します。これらのタイプのノードをインポートすることができません。

技術的詳細

このメソッドの node パラメータは別のドキュメントで定義されたノードであり、そのドキュメントに適したノードのコピーが返されます。もし deep 値がtrueの場合、そのノードのすべての子孫ノードもコピーされます。ただし、元のノードとその子孫ノードは変更されません。返されるコピーのownerDocument属性は現在のドキュメントに設定され、parentNode属性はnullです。なぜなら、まだドキュメントに挿入されていないからです。元のノードツリーに登録されたイベントリスナー関数はコピーされません。

Elementノードをインポートする場合、元のドキュメントで明示的に設定された属性のみがインポートされます。Attrノードをインポートする場合、自動的にspecified属性がtrueに設定されます。

ブラウザのサポート

document.importNode() DOMレベル2(2001)の機能です。

すべてのブラウザがサポートしています:

クローム IE エッジ ファイアフォックス サファリ オペラ
クローム IE エッジ ファイアフォックス サファリ オペラ
サポート 9-11 サポート サポート サポート サポート