Document.adoptNode()
Baseline Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015.
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