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