捕获 iframe 异常 [重复]

Posted

技术标签:

【中文标题】捕获 iframe 异常 [重复]【英文标题】:Catch iframe exceptions [duplicate] 【发布时间】:2012-07-13 22:17:30 【问题描述】:

当我在 iframe 上设置 src 属性时,有时会向控制台记录错误(似乎是未捕获的异常),并且永远不会加载目标。

例如,如果我设置 myiframe.src = 'http://www.google.com',它永远不会加载,我的 Chrome 开发人员工具将记录以下消息:

Refused to display document because display forbidden by X-Frame-Options.

我知道这个错误是什么,但我想捕捉这个异常,以便在网站不想加载到 iframe 时处理它。

因为设置 iframe src 是半异步的,所以我不能只用 try catch 包围该行。

如何处理 iframe 错误? iframe.onerroriframe.onabort 似乎也没有用。

【问题讨论】:

或者你可以 XmlHttpRequest 并使用 document.write 将响应注入 iframe.. ***.com/questions/6666423/…这可能对你有帮助 所以,在这里添加,iframe 在出现错误时不会触发 onerror,错误处理必须在 onload 处理程序中按照javascript.info/onload-onerror#other-resources<iframe> Only load event when the iframe loading finished. It triggers both for successful load and in case of an error. That’s for historical reasons. 【参考方案1】:

看看:

https://developer.mozilla.org/en/DOM/window.onerror

这本质上是一个全局的后备错误处理程序。谷歌一下以获取有关如何使用此方法的更多信息,但请注意,您必须解决此方法的跨浏览器兼容性问题,尤其是 IE 浏览器系列。

这可能适用于 IFRAME 元素,也可能不适用于 YMMV。

更新:

看看这个问题。

How to catch JavaScript errors in all Iframes (with window.error)?

【讨论】:

window.onerror 似乎没有抓住它。另外,就像我在帖子中提到的那样,iframe.onerror 也没有得到它:( 如果我发现任何有趣的东西,我会尝试使用它并更新。 不幸的是,window.onerror 没有捕捉到它。

以上是关于捕获 iframe 异常 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

前端异常类型及捕获方式

捕获多个异常-C# [重复]

捕获重复条目异常

捕获不同线程中引起的异常[重复]

在iOS中捕获崩溃和异常[重复]

捕获调用异步方法C#的异常[重复]