2011-12-02 66 views
1

我创建了一个ID为“example”的div,并为其中的模式框输入消息。我遇到的问题是,加载一次id的iframe不会关闭模式框。有什么我在这里失踪?一旦iframe内容被加载,关闭jquery模式框

$(document).ready(function(){ 
$("#example").dialog({modal: true}); 
}); 

$('#loaded').load(function() { 
$("#example").dialog("close"); 
}); 
+0

你在哪里加载iframe的内容?相同的域或另一个?如果相同,我可能会有答案。 –

+0

相同的域名,但它在不同的页面上。 – pcproff

回答

0

你试过

$("#loaded").ready(function(){ 
    $("#example").dialog("close"); 
}); 
0

我怀疑这是因为加载事件的wireup正在发生前的HTML已经准备好,试试这个:

$(document).ready(function(){ 
    $("#example").dialog({modal: true}); 

    $('#loaded').ready(function() { 
     $("#example").dialog("close"); 
    }); 
}); 

有一个问题已经有大约得到一个PDF格式的iframe通知,他们不认为它可以工作: How do I fire an event when a iframe has finished loading in jQuery?

+0

这是一个很好的解决方案,在FF中完美运行。该对话框在文件刚刚打开iframe时关闭,而不是在Chrome和IE中完全加载时关闭。 – pcproff

+0

然后,我会建议添加亚当的解决方案,并改变'$('#loaded')。load'到$('#loaded')。ready'准备好在DOM完成加载后触发。我会更新我的答案 –

+0

感谢Adam,Glenn,Emre的快速回复。格伦,这最后的反应工程真棒,但几乎立即关闭铬和IE:( – pcproff