Клонируйте весь узел документа и установите его как новый документ в другом окне

#javascript #html

Вопрос:

Мне интересно, есть ли простой способ клонировать document узел из одного окна и импортировать его в другое, например, iframe или всплывающее окно. Прямо сейчас вот что я делаю:

 const iframe = document.createElement('iframe');
document.body.appendChild(iframe);
const importedDocElement = iframe.contentDocument.importNode(document.documentElement, true);
iframe.contentDocument.documentElement.replaceWith(importedDocElement);
 

Теперь это в основном работает, но затем есть некоторые другие недостающие части, такие как doctype и другие метаданные, привязанные к узлу документа. Конечно, можно передавать недостающие части одну за другой, но, возможно, есть способ скопировать сам узел документа.

Комментарии:

1. Не приведет ли создание такого клона к бесконечному созданию документов?

2. Только в том случае, если сценарий копирования всегда запущен, что в моем случае обусловлено специальными событиями. Ваш вопрос также может быть применен к любому клонированному элементу, содержащему сценарий клонирования. Поэтому, конечно, это следует иметь в виду.