javascript - 检测iframe内容是否加载成功

标签 javascript dom-events cross-domain

我有一个包含 iframe 的小部件。用户可以配置此 iframe 的 url,但如果无法加载 url(它不存在或用户无法访问互联网),则 iframe 应故障转移到默认的离线页面。

问题是,如何检测 iframe 是否可以加载?我尝试订阅“加载”事件,如果一段时间后未触发此事件,那么我将进行故障转移,但这仅适用于 Firefox,因为 IE 和 Chrome 在“找不到页面”时触发“加载”事件显示。

最佳答案

我通过 Google 找到了以下链接:http://wordpressapi.com/2010/01/28/check-iframes-loaded-completely-browser/

不知道是否解决了“找不到页面”的问题。

<script type="javascript">
var iframe = document.createElement("iframe");
iframe.src = "http://www.your_iframe.com/";
if (navigator.userAgent.indexOf("MSIE") > -1 && !window.opera) {
  iframe.onreadystatechange = function(){
    if (iframe.readyState == "complete"){
      alert("Iframe is now loaded.");
    }
  };
} else {
  iframe.onload = function(){
    alert("Iframe is now loaded.");
  };
}
</script>

我自己没试过,不知道行不行。祝你好运!

关于javascript - 检测iframe内容是否加载成功,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4548984/

相关文章:

javascript - 如何阻止javascript代码执行?

javascript - Visual Studio Code 中的 .ts 文件没有智能感知

JavaScript/AJAX 在应该显示图片时显示 "undefined"

Javascript如何使用类而不是id作为下拉菜单

node.js - 使用 Node 代理 http 请求

javascript - 使用 jquery 对话框在 jstree 中创建一个新节点

javascript - 如果类别下没有任何子类别,则应隐藏该类别

javascript - 使用 XHTML 和 Javascript 编写符合标准的弹出窗口的最佳方法是什么?

javascript - 为什么HTML SCRIPT标签不受同源策略约束

angularjs - cookie 未设置跨域 - AngularJS 和 NodeJS/Express