Документ: метод adoptNode()
Базовая Широко доступна
Эта функция хорошо зарекомендовала себя и работает на многих устройствах и версиях браузеров. Она доступна в браузерах с июля 2015 года.
Document.adoptNode() перемещает узел из другого документа в документ метода. Принятый узел и его поддерево удаляются из исходного документа (если таковой имеется), и их ownerDocument изменяется на текущий документ. Затем узел можно вставить в текущий документ.
Синтаксис
adoptNode(externalNode)
Параметры
externalNode-
Узел из другого документа, который будет принят.
Возвращаемое значение
Скопированный importedNode в рамках импортирующего документа.
После вызова этого метода, importedNode и externalNode являются одним и тем же объектом.
Примечание: importedNode's Node.parentNode — это null, так как он еще не был вставлен в дерево документа!
Примеры
const iframe = document.querySelector("iframe");
const iframeImages = iframe.contentDocument.querySelectorAll("img");
const newParent = document.getElementById("images");
iframeImages.forEach((imgEl) => {
newParent.appendChild(document.adoptNode(imgEl));
});
Примечания
Прежде чем их можно будет вставить в текущий документ, узлы из внешних документов должны быть:
- клонированы с помощью
document.importNode(); или - приняты с помощью
document.adoptNode().
Подробнее о проблемах с Node.ownerDocument см. в часто задаваемых вопросах W3C DOM.
Спецификации
| Спецификация |
|---|
| DOM # ref-for-dom-document-adoptnode① |
Совместимость с браузерами
| Рабочие столы | Мобильные устройства | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox для Android | Opera Android | Safari на iOS | Samsung Internet | WebView Android | |
adoptNode |
1 | 12 | 1 | ≤12.1 | 3 | 18 | 4 | ≤12.1 | 1 | 1.0 | 4.4 |
См. также
© 2005–2024 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/API/Document/adoptNode