【发布时间】:2013-06-10 12:53:18
【问题描述】:
我有一个加载外部域的 iframe,有时域会出现故障或超时。我一直在试图弄清楚如何检测 iframe 页面是否无法加载。我不能使用 AJAX,因为域与主机页面不同(跨域保护)。
这是我认为它应该如何工作的示例代码(但它没有):
<!doctype html>
<html>
<head>
</head>
<body>
<iframe id="myIframe" src="http://www.domain.com/"></iframe>
<script src="jquery.min.js"></script>
<script>
$('#myIframe').on('load',function() {
alert('Loaded correctly');
});
$('#myIframe').on('error',function() {
alert('Load failed!');
});
</script>
</body>
</html>
我无法在远程域上添加代码或上传 jsonp 文件,因此无法使用 AJAX/JSONP 技巧(据我所知)。
【问题讨论】:
-
哪一部分有效?
load加载时会触发吗?如果失败,error会触发吗? -
如果您设置了正确的
CORS标头,您可以使用 AJAX。您也可以使用postMessage。你甚至可以使用 JSONp。 -
如果框架加载失败,则触发加载事件。
-
错误是什么样的,超时?你能用
setTimeout模拟吗? -
@Frits 我无权访问其他域,因此无法在那里放置代码来帮助或创建 jsonp 内容。
标签: javascript jquery iframe