JQuery - 等待加载两个iframe

时间:2011-03-15 16:50:13

标签: jquery iframe

我有一个按钮,可以在两个iframe中加载两个不同的页面。我需要等待那些负载完成(比如ready(),不关心图像和其他内容),然后触发另一个动作。我怎么能这样做?

3 个答案:

答案 0 :(得分:4)

使用$.when()将对您有所帮助(jQuery 1.5及更高版本)。 例如:

function doAjax(){
   return $.get('foo.htm');
}

function doMoreAjax(){
   return $.get('bar.htm');
}

$.when( doAjax(), doMoreAjax() )
   .then(function(){
      console.log( 'I fire once BOTH ajax requests have completed!' );
   })
   .fail(function(){
      console.log( 'I fire if one or more requests failed.' );
   });

答案 1 :(得分:4)

一种方法是让iFrame内容表示它已准备就绪。这是一种简单的方法:

主页

var status = [false, false];

function doneLoading(index)
{
   status[index] = true;
   if (status[1] && status[2])
      alert("Both iframes are done loading");
}

在每个iFrame中

$(document).ready(function() { parent.doneLoading(1) }); // or 2

答案 2 :(得分:1)

在我看来,最安全的解决方案可能是拥有一个嵌入iframe并等待整个页面(父页面)加载的父iframe:

$(parent).load(function(){
   ... //if you get there then the 2 iframes are already loaded
}

缺点是它有很多iframe