Cette page a été traduite à partir de l'anglais par la communauté.Vous pouvez contribuer en rejoignant la communauté francophone sur MDN Web Docs.
Document.adoptNode()
Baseline Widely available
Cette fonctionnalité est bien établie et fonctionne sur de nombreux appareils et versions de navigateurs. Elle est disponible sur tous les navigateurs depuis juillet 2015.
Adopte un noeud. Le noeud (et son sous-arbre) est supprimé du document dans lequel il se trouve (le cas échéant) et sonownerDocument (document propriétaire) est remplacé par le document en cours. Le noeud peut ensuite être inséré dans le document en cours.
Dans cet article
Syntaxe
node = document.adoptNode(externalNode);nodeest le noeud adopté qui a maintenant ce document en tant que son
ownerDocument(document propriétaire). LeparentNodedu noeud estnull, car il n'a pas encore été inséré dans l'arborescence du document. Notez quenodeetexternalNodesont le même objet après cet appel.externalNodeest le noeud à adopter existant dans un autre document.
Exemple
var iframe = document.getElementById("my-iframe");var iframeImages = iframe.contentDocument.getElementsByTagName("img");var newParent = document.getElementByTagName("images");for (var i = 0; i < iframeImages.length; i++) { newParent.appendChild(document.adoptNode(iframeImages[i]));}Notes
En général l'appel deadoptNode peut échouer en raison du nœud source provenant d'une implémentation différente, mais cela ne devrait pas poser de problème avec les implémentations du navigateur.
Les nœuds provenant de documents externes doivent être clonés à l'aide dedocument.importNode() (ou adoptés avecdocument.adoptNode()) avant de pouvoir être insérés dans le document courant. Pour en savoir plus sur les problèmesdeNode.ownerDocument, consultez laFAQ DOM du W3C (en anglais).
Gecko n'obligeait pas à utiliserdocument.importNode() etdocument.adoptNode() avant sa version 1.9. Depuis les versions 1.9alphas, si un nœud n'est pas adopté ou importé avant d'être utilisé dans un autre document, l'exceptionWRONG_DOCUMENT_ERR est déclenchée (NS_ERROR_DOM_WRONG_DOCUMENT_ERR). implémentation dans lebug 47903.