javascript/jquery:检测iframe页面是否加载失败
我有一个iframe,它加载一个外部域,有时域会关闭或超时。我一直在试图找出如何检测iframe页面是否加载失败。我不能使用AJAX,因为域与主机页不同(跨源保护) 下面是我认为它应该如何工作的示例代码(但事实并非如此):javascript/jquery:检测iframe页面是否加载失败,javascript,jquery,iframe,Javascript,Jquery,Iframe,我有一个iframe,它加载一个外部域,有时域会关闭或超时。我一直在试图找出如何检测iframe页面是否加载失败。我不能使用AJAX,因为域与主机页不同(跨源保护) 下面是我认为它应该如何工作的示例代码(但事实并非如此): $('#myIframe')。on('load',function(){ 警报(“加载正确”); }); $('#myIframe')。在('error',function()上{ 警报(“加载失败!”); }); 我无法在远程域上添加代码或上传jsonp文件,因此AJA
$('#myIframe')。on('load',function(){
警报(“加载正确”);
});
$('#myIframe')。在('error',function()上{
警报(“加载失败!”);
});
我无法在远程域上添加代码或上传jsonp文件,因此AJAX/jsonp技巧是不可能的(据我所知)。尝试以下方法:
$($('#myIframe')[0].document).ready(function() {
alert('loaded');
});
哪一部分有效?
装载
装载时是否会开火?如果失败,error
是否会触发?如果设置了正确的CORS
标题,则可以使用AJAX。您还可以使用postMessage
。您甚至可以使用JSONp。如果框架加载失败,加载事件将被激发。错误看起来像什么,超时?你能用setTimeout
模拟一下吗?@Frits我没有访问其他域的权限,因此无法在那里放置代码来帮助或创建jsonp内容。这是一个很好的尝试,但当页面超时或加载失败时,仍然会触发警报。你有什么解决方案吗?
$($('#myIframe')[0].document).ready(function() {
alert('loaded');
});