我知道可以为window.error添加事件监听器。
但是,在使用Iframe时,每个iframe
都有自己的窗口元素,并且应为每个window.error
创建iframe
。
是否有可能以某种方式在一个位置定义错误事件处理程序,其中所有错误都将在其中 触发这种特定方法?
答案 0 :(得分:6)
这可能有用。
function myHandler(msg, url, line){
//do stuff here...
}
//hook in all frames...
function addErrorHandler(win, handler){
win.onerror = handler;
for(var i=0;i<win.frames.length;i++){
addErrorHandler(win.frames[i], handler);
}
}
//start with this window... and add handler recursively
addErrorHandler(window, myHandler);
答案 1 :(得分:2)
我没试过这个,所以请不要因为它而挂我:-) 在包含所有iframe的主/父窗口中,您可以在那里创建错误处理功能。然后使用jQuery抓取页面中的所有iFrame并注册.error处理程序以指向在父窗口中注册的函数。
PS:同时关于javascript错误处理的主题,这也很酷:https://damnit.jupiterit.com/