1. ホーム
  2. javascript

[解決済み] jQuery iframe load()イベント?

2022-02-10 02:23:30

質問

どなたかご存知の方はいらっしゃいますか?

で挿入しているiframeがあります。 $.ajax() で、iframe のコンテンツが完全に読み込まれた後に、ある処理を行いたいのです。

....
 success: function(html){  // <-- html is the IFRAME (#theiframe)
          $(this).html(html);   // $(this) is the container element
          $(this).show();
          $('#theiframe').load(function(){
             alert('loaded!');
          } 
....

は動作しますが、IFRAMEが2回読み込まれているのがわかります(アラートも2回表示されます)。

どうすればいいですか?

可能なら load イベントは iframe のドキュメント内で発生し、それを含むドキュメント内の関数にコールアウトされます。これは、すべてのブラウザで動作し、一度だけ実行されるという利点があります。

メイン・ドキュメントで

function iframeLoaded() {
    alert("Iframe loaded!");
}

iframe ドキュメント内。

window.onload = function() {
    parent.iframeLoaded();
}