rik*_*vis 15 javascript iframe cross-domain
我有一个相当有趣的问题.我有一个父页面,它将创建一个模态jquery对话框,其中包含对话框中的iframe.iframe将填充来自第三方域的内容.我的问题是我需要创建一些对话级javascript,可以检测iframe的内容是否成功加载,如果它没有在5秒的时间范围内,然后关闭对话框并将用户返回到父页面.
我研究了很多解决方案,只有两个具有任何真正的价值.
这些是我必须与之合作的唯一选择吗?有没有更简单的方法来检测这个?
我一直在研究是否有一种方法来调查http响应错误,但这仍然局限于相同的限制.
任何帮助都会非常感激.
谢谢
Sea*_*sey 10
最简单的方法(如果您可以将代码添加到外部网站)是让他们添加一个不可见的iframe,指向您域上的特殊html文件.然后,这可以parent.parent.foo()用于通知原始窗口有关加载事件的信息.
收听"加载"事件只会告诉您窗口是否已加载,而不是加载的内容或文档是否已准备好进行交互.
Nicholas Zakas 有一篇关于检测 iframe 是否已加载的文章:http://www.nczonline.net/blog/2009/09/15/iframes-onload-and-documentdomain/。基本上你有这个代码片段:
var iframe = document.createElement("iframe");
iframe.src = "simpleinner.htm";
if (iframe.attachEvent){
iframe.attachEvent("onload", function(){
alert("Local iframe is now loaded.");
});
} else {
iframe.onload = function(){
alert("Local iframe is now loaded.");
};
}
document.body.appendChild(iframe);
Run Code Online (Sandbox Code Playgroud)
我还没有测试过它,但我很确定 jQuery 应该能够通过执行类似的操作来处理它$("#iframe").load(function () { alert("Local iframe is now loaded."); });