Динамический скрипт в IFrame не запускает window.onload
Я динамически создаю 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 ответ
Решение
Решено с помощью 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();