iframe 中发生异常,外界的 onerror 是不会触发的。但如果 iframe 地址同域,那么我们就可以设置 iframe 的全局 onerror 进行监听
// 需要保证在 iframe 加载完成后进行
document.getElementById('myIframe').contentWindow.onerror = function () {
alert('error!!')
return false
}
非同域情况下,如果 ifame 内的内容不来自第三方,也就是你自己可以控制,那么可以通过与 iframe 内进行通信的方式,将异常信息抛出来
非同域且内容不受自己控制的情况下,除了在控制台查看错误详细信息,真的没其他办法可以捕获了。