Document.adoptNode()
Document.adoptNode()
transfiere un node desde otro document al documento del método. El nodo adoptado y sus subnodos se eliminan del documento original (si lo hubiera), encuentra y su ownerDocument
se cambia por el documento actual. El nodo puede entoces ser insertado en el documento actual.
Sintaxis
node = document.adoptNode(externalNode);
node
-
El nodo adoptado que ahora tiene este documento como su
ownerDocument
. ElparentNode
del nodo esnull
, esto se debe a que aún no a sido insertado en el árbol del documento. Tenga en cuenta quenode
yexternalNode
son el mismo objeto después de esta llamada. externalNode
-
El nodo a ser adoptado desde otro documento.
Ejemplo
var iframe = document.querySelector("iframe");
var iframeImages = iframe.contentDocument.querySelectorAll("img");
var newParent = document.getElementById("images");
iframeImages.forEach(function (imgEl) {
newParent.appendChild(document.adoptNode(imgEl));
});
Notas
Los nodos de documentos externos deberían ser clonados utilizando document.importNode()
(o adoptado utilizando document.adoptNode()
) antes de que puedan ser insertados en el documento actual. Para más incidencias sobre Node.ownerDocument
, vea el W3C DOM FAQ.
Firefox actualmente no obliga a cumplir esta regla (lo hizo un tiempo durante el desarrollo de Firefox 3, pero muchos sitios se rompían cuando esta regla era obligatoria). Animamos a los desarrolladores web a que corrijan su código para seguir esta regla con el fin de mejorar la compatibilidad futura.
Especificaciones
Specification |
---|
DOM Standard # ref-for-dom-document-adoptnode① |
Compatibilidad del Navegador
BCD tables only load in the browser