von*_*dip 5 javascript error-handling internet-explorer
我正在开发一个Web应用程序.我的应用程序在chrome和firefox上工作得很好,但是由于某些原因,在IE中出现了一些错误.即使出现了几个错误,应用程序仍然可以顺利运行,没有明显的问题.
我想隐藏最终用户的错误,因为目前他会看到一个小图标,表示发生了错误.
我怎样才能做到这一点?
谢谢
到目前为止,最好的办法是弄清楚代码导致错误的位置并修复它.
更新:以下是适用于IE8,但不适用于IE9或IE11(因此IE10可能不适用):
因为这是在IE中特别发生的,如果它们是运行时(而不是编译)错误,你可以使用它window.onerror来处理(抑制)它们,这些错误来自你对其他答案的评论.从该链接:
若要取消事件的默认Internet Explorer错误消息
window,请将对象的returnValue属性设置event为true或仅true在Microsoft JScript中返回.该
onerror事件触发运行时错误,但不会触发编译错误.此外,脚本调试程序引发的错误对话框不会通过返回来抑制true.要关闭脚本调试程序,请从" 工具"菜单中选择" Internet选项",以禁用Internet Explorer中的脚本调试.单击" 高级"选项卡,然后选中相应的复选框.
例:
此代码导致错误(因为我试图取消引用undefined):
document.getElementById('theButton').onclick = function() {
var d;
display(d.foo);
};
Run Code Online (Sandbox Code Playgroud)
但是如果我们添加这个,那么错误会被抑制,因为我们告诉IE我们处理它:
window.onerror = function() {
// Return true to tell IE we handled it
return true;
};
Run Code Online (Sandbox Code Playgroud)