Динамический скрипт в IFrame не запускает window.onload - PullRequest
0 голосов
/ 20 января 2011

Я динамически создаю IFrame, затем добавляю к нему тег script с кодом, который должен выполняться при загрузке кадра, однако он никогда не выполняется.

$stage.html("<iframe src='javascript:;' id='frame'></iframe>");
$frame = $("#frame");

frame =  $frame[0].contentDocument ? $frame[0].contentDocument :  $frame[0].contentWindow.document;

script= frame.createElement('script'),
head = frame.getElementsByTagName("head")[0];

script.innerHTML = "window.onload = function() { alert('loaded'); }";

head.appendChild(script);

Я предполагаю, что событие window onload инициируется до того, как код добавлен в IFrame. Есть ли способ, чтобы он был вызван? Также он должен содержаться в window.onload, как и для редактора кода на основе JS, поэтому iframe должен реагировать так же, как в окне браузера. Приветствия.

1 Ответ

2 голосов
/ 20 января 2011

Решено с помощью window.write().

frame = document.createElement("iframe"); 
frame.src = "javascript:;";
document.body.appendChild(frame);

win = frame.contentWindow;
win.document.open();
win.document.write(html);
win.document.close();
...