Document: importNode() ã¡ã½ãã
Baseline
åºãå©ç¨å¯è½
ãã®æ©è½ã¯åºãå®è£ ããã¦ãããå¤ãã®ãã¼ã¸ã§ã³ã®ç«¯æ«ããã©ã¦ã¶ã¼ã§åä½ãã¾ãã2015å¹´7æä»¥éããã¹ã¦ã®ãã©ã¦ã¶ã¼ã§å©ç¨å¯è½ã§ãã
Document ãªãã¸ã§ã¯ãã® importNode() ã¡ã½ããã¯ãå¾ã§ç¾å¨ã®ææ¸ã«æ¿å
¥ããããã«ãä»ã®ææ¸ãã Node ã¾ã㯠DocumentFragment ã®è¤è£½ã使ãã¾ãã
ã¤ã³ãã¼ãããããã¼ãã¯ãã¾ã ææ¸ããªã¼ã«ã¯å«ã¾ãã¾ããããããå«ããã«ã¯ã appendChild() ã insertBefore() ã®ãããªæ¿å
¥ã¡ã½ããããç¾å¨ã®ææ¸ããªã¼ã«åå¨ãããã¼ãã«å¯¾ãã¦å¼ã³åºãå¿
è¦ãããã¾ãã
document.adoptNode() ã¨ã¯ç°ãªããå
ã®ææ¸ããå
ã®ãã¼ãã¯åé¤ããã¾ãããã¤ã³ãã¼ãããããã¼ãã¯å
ã®ãã¼ãã®è¤è£½ã§ãã
æ§æ
importNode(externalNode)
importNode(externalNode, deep)
弿°
externalNode-
ç¾å¨ã®ææ¸ã«ã¤ã³ãã¼ããããå¤é¨ã®
Nodeã¾ãã¯DocumentFragmentã§ãã deepçç¥å¯-
è«çå¤ã®ãã©ã°ã§ãæ¢å®å¤ã¯
falseã§ãããexternalNodeã® DOM ãµãããªã¼å ¨ä½ãã¤ã³ãã¼ããããã©ãããå¶å¾¡ãã¾ããdeepãtrueã«è¨å®ãããå ´åãexternalNodeããã³ãã®åå«å ¨ã¦ãè¤è£½ããã¾ããdeepãfalseã«è¨å®ãããå ´åãexternalNodeã®ã¿ãã¤ã³ãã¼ãããã¾ã â æ°ãããã¼ãã«ã¯åãã¼ãã¯ãªãç¶æ ã«ãªãã¾ãã
è¿å¤
ã¤ã³ãã¼ãããå´ã®ææ¸ã®ã¹ã³ã¼ãã«ã³ãã¼ããã importedNode ã§ãã
ã¡ã¢:
importedNode ã® Node.parentNode 㯠null ã«ãªãã¾ããã¾ã ææ¸ããªã¼ã«æ¿å
¥ããã¦ããªãããã§ãã
ä¾
const iframe = document.querySelector("iframe");
const oldNode = iframe.contentWindow.document.getElementById("myNode");
const newNode = document.importNode(oldNode, true);
document.getElementById("container").appendChild(newNode);
ã¡ã¢
å¤é¨ææ¸ããã®ãã¼ãã¯ãç¾å¨ã®ææ¸ã«æ¿å ¥ããåã«ã次ã®ããããã®ç¶æ ã«ããªããã°ãªãã¾ããã
document.importNode()ã§ã¯ãã¼ã³ãããã¾ãã¯document.adoptNode()ã§ç§»è¡ãã
ã¡ã¢: Firefox ã¯ä»ã®ã¨ãããã®ã«ã¼ã«ãå¼·å¶ãã¦ãã¾ããããå°æ¥ã®äºææ§ãæ¹åããããã«ããã®ã«ã¼ã«ã«å¾ããã¨ãå¼·ãæ¨å¥¨ãã¾ãã
Node.ownerDocument ã®åé¡ã«é¢ãã¦è©³ããã¯ãW3C DOM FAQ ãåç
§ãã¦ãã ããã
仿§æ¸
| 仿§æ¸ |
|---|
| DOM > # ref-for-dom-document-importnodeâ > |
ãã©ã¦ã¶ã¼ã®äºææ§
é¢é£æ å ±
document.adoptNode()ãã®ã¡ã½ããã¨ã¨ã¦ãä¼¼ãåä½ãè¡ãNode.appendChild()Node.insertBefore()