1

私のウェブサイトには、所有していないsrcのiframeが3つあります。

HTML

    <iframe id="iframe" src="http://a.com"></iframe>
    <iframe id="iframe" src="http://b.com"></iframe>
    <iframe id="iframe" src="http://c.com"></iframe>

jQuery

$('iframe').load(function(){
     alert("Loaded");
});

問題:メッセージ「Loaded」が3回表示されます。すべてのiframeが読み込まれたときに、メッセージ「読み込み済み」を1回だけ表示したいと思います。

4

1 に答える 1

4

カウンター変数を使用して、iframeに対してloadイベントが発生した回数をカウントできます。カウンタが3に達したときにのみアラートを表示できます。

count = 0;    
$('iframe').load(function(){
     count++;
     if(count == 3)
        alert("Loaded");
});

編集:ページ内のすべてのiframeが読み込まれたときにアラートを出します。doucment.readyでiframeの総数を確認して、すべてのiframeを確実に取得できるようにします。

count = 0;   
totalFrames = 0; 
$(function(){
    totalFrames = $('iframe').length;
});
$('iframe').load(function(){
     count++;
     if(count == totalFrames)
        alert("Loaded");
});
于 2013-01-24T17:18:44.750 に答える