Установка innerHTML IFRAME, добавленного скриптом - PullRequest
2 голосов
/ 14 ноября 2011

Если у меня есть страница с iframe:


<iframe src="blank.html" id="frame"></iframe>

и я запускаю следующий javascript:


var iframe = document.getElementById("frame");
var content = iframe.contentDocument || iframe.contentWindow;
content = content.documentElement || content.document;
content.innerHTML = "Test";

мой iframe заканчивается контентом "Test". Тем не менее, если я создаю iframe в скрипте (например)

<code>
var iframe = document.createElement("iframe");
iframe.id = "frame";
iframe.src = "blank.html";
document.body.appendChild(iframe);

и затем запустите первый фрагмент, я получаю пустой iframe. Я заметил, что у меня есть флэш-контент, который я пытался установить - есть ли событие, на которое я могу подписаться в iframe, чтобы сообщить мне, что оно нормально манипулирует (например, его событие DOM ready?)

1 Ответ

2 голосов
/ 14 ноября 2011

Он мигает, потому что вы обновляете DOM до того, как для него будет установлено значение blank.html;

var iframe = document.createElement("iframe");
iframe.id = "frame";
iframe.src="about:blank"; //or blank.html
iframe.onload = function() {
   var domdoc = iframe.contentDocument || iframe.contentWindow.document;
   domdoc.write("Test");
   alert("..or..")
   domdoc.body.innerHTML = "<em>Cake</em>";    
}
document.body.appendChild(iframe);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...