Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/40.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
javascript/jquery:检测iframe页面是否加载失败_Javascript_Jquery_Iframe - Fatal编程技术网

javascript/jquery:检测iframe页面是否加载失败

javascript/jquery:检测iframe页面是否加载失败,javascript,jquery,iframe,Javascript,Jquery,Iframe,我有一个iframe,它加载一个外部域,有时域会关闭或超时。我一直在试图找出如何检测iframe页面是否加载失败。我不能使用AJAX,因为域与主机页不同(跨源保护) 下面是我认为它应该如何工作的示例代码(但事实并非如此): $('#myIframe')。on('load',function(){ 警报(“加载正确”); }); $('#myIframe')。在('error',function()上{ 警报(“加载失败!”); }); 我无法在远程域上添加代码或上传jsonp文件,因此AJA

我有一个iframe,它加载一个外部域,有时域会关闭或超时。我一直在试图找出如何检测iframe页面是否加载失败。我不能使用AJAX,因为域与主机页不同(跨源保护)

下面是我认为它应该如何工作的示例代码(但事实并非如此):


$('#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');    
});