Javascript 捕获iframe异常
当我在iframe上设置Javascript 捕获iframe异常,javascript,html,exception,iframe,Javascript,Html,Exception,Iframe,当我在iframe上设置src属性时,有时会将错误记录到控制台(似乎是未捕获的异常),并且从未加载目标 例如,如果我设置myiframe.src=http://www.google.com“,它永远不会加载,我的Chrome开发者工具将记录以下消息: Refused to display document because display forbidden by X-Frame-Options. 我理解这个错误是什么,但是我想捕捉这个异常,这样当一个网站不想被加载到iframe中时,我就可以处
src
属性时,有时会将错误记录到控制台(似乎是未捕获的异常),并且从未加载目标
例如,如果我设置myiframe.src=http://www.google.com“
,它永远不会加载,我的Chrome开发者工具将记录以下消息:
Refused to display document because display forbidden by X-Frame-Options.
我理解这个错误是什么,但是我想捕捉这个异常,这样当一个网站不想被加载到iframe中时,我就可以处理它了
因为设置iframesrc
是半异步的,所以我不能用try-catch来围绕这一行
如何处理iframe错误iframe.onerror
和iframe.onabort
似乎也不起作用。看看:
这本质上是一个全局的回退错误处理程序。关于如何使用这个方法的更多信息,请在Google上搜索一下,但请注意,这种方法存在跨浏览器兼容性问题,您必须解决,特别是IE浏览器系列
这可能适用于IFRAME元素,也可能不适用于IFRAME元素,因此YMMV
更新:
看看这个问题
窗口。OneError似乎没有捕捉到它。另外,正如我在文章中提到的,iframe.onerror
也不明白:(我会尝试使用它,如果发现任何有趣的内容,我会进行更新。不幸的是,window.onerror没有捕捉到它。或者,您可以XmlHttpRequest并使用document.write将响应注入iframe。这可能会对您有所帮助。因此,在此添加,iframe在发生错误时不会触发onerror,必须在根据的onload处理程序仅在iframe加载完成时加载事件。它会在加载成功和出错时触发。这是出于历史原因。