Документ: метод importNode()
Базовая Широко поддерживается
Эта функция хорошо зарекомендовала себя и работает на многих устройствах и версиях браузеров. Она доступна в браузерах с июля 2015 года.
Метод объекта Document importNode() создает копию узла Node или DocumentFragment из другого документа, чтобы его можно было вставить в текущий документ позже.
Импортированный узел еще не включен в дерево документа. Чтобы включить его, необходимо вызвать метод вставки, такой как appendChild() или insertBefore() с узлом, который уже находится в дереве документа.
В отличие от document.adoptNode(), исходный узел не удаляется из исходного документа. Импортированный узел является клоном исходного.
Синтаксис
importNode(externalNode) importNode(externalNode, deep)
Параметры
externalNode-
Внешний
NodeилиDocumentFragmentдля импорта в текущий документ. deepНеобязательно-
Логический флаг, значение которого по умолчанию
false, управляет включением всего поддерева DOM узлаexternalNodeв импорт.- Если
deepустановлено вtrue, тоexternalNodeи все его потомки копируются. - Если
deepустановлено вfalse, то импортируется толькоexternalNode— новый узел не имеет потомков.
- Если
Возвращаемое значение
Скопированный importedNode в рамках импортирующего документа.
Примечание: importedNode's 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 см. в FAQ по DOM W3C.
Спецификации
| Спецификация |
|---|
| DOM # ref-for-dom-document-importnode① |
Совместимость с браузерами
| Рабочие столы | Мобильные | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox для Android | Opera Android | Safari на iOS | Samsung Internet | WebView Android | |
importNode |
1 | 12 | 1 | 9 | 1 | 18 | 4 | 10.1 | 1 | 1.0 | 4.4 |
См. также
-
document.adoptNode(), который ведет себя очень похоже на этот метод Node.appendChild()Node.insertBefore()
© 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/importNode