0
IFrame
を動的に作成してから、フレームがロードされるときに実行するコードでscript
タグを追加します。実行されることはありません。IFrameの動的スクリプトがwindow.onloadをトリガーしない
$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);
私はコードがIFrame
に追加される前にwindow onload
イベントがトリガされると仮定しています。とにかくそれが呼ばれていることを確認するにはありますか?また、JSベースのコードエディタの場合のように、window.onload
に含まれる必要があります。そのため、iframeはブラウザウィンドウと同じように反応する必要があります。乾杯。
私はこのウィンドウが既にロードされているので、コードがonloadイベントを見逃していると思います。まだロードされていない場合、getElementsByTagNameは失敗します。私はこれについてはよくわからないので、正式な回答にしなかった。 – qwertymk
良い点。 iframeにコードを挿入して 'window.onload'で実行させる別の方法はありますか? – Louis
多分.ready? –