Если вы клонируете iframe
, создавая еще один iframe
, то вы deep клонируете свой iframe
!Его источник находится где-то еще, и он будет загружен, когда вы назначите его атрибут src
.
Test
Представьте, что у вас есть источник ( non cached ) страницакоторый печатает текущее время.Поместите iframe
на свою страницу, подождите 10 секунд, затем клонируйте его.Новый iframe
будет загружать свой контент, а второй iframe
будет иметь другой контент (время).
«Настоящее» глубокое клонирование
РЕДАКТИРОВАТЬ :если вам нужен глубокий необработанный клон, вы можете получить innerHTML и вставить его в iframe.Решение от Michael Mahemof :
// Creates the new iframe, add the iframe where you want
var newframe = document.createElement("iframe");
document.body.appendChild(newframe);
// We need the iframe document object, different browsers different ways
var frameDocument = newFrame.document;
if (newFrame.contentDocument)
frameDocument = newFrame.contentDocument;
else if (newFrame.contentWindow)
frameDocument = newFrame.contentWindow.document;
// We open the document of the empty frame and we write desired content.
// originalHtmlContent is a string where you have the source iframe HTML content.
frameDocument.open();
frameDocument.writeln(originalHtmlContent);
frameDocument.close();