IE - 防止IE中显示错误

von*_*dip 5 javascript error-handling internet-explorer

我正在开发一个Web应用程序.我的应用程序在chrome和firefox上工作得很好,但是由于某些原因,在IE中出现了一些错误.即使出现了几个错误,应用程序仍然可以顺利运行,没有明显的问题.

我想隐藏最终用户的错误,因为目前他会看到一个小图标,表示发生了错误.

我怎样才能做到这一点?

谢谢

T.J*_*der 6

到目前为止,最好的办法是弄清楚代码导致错误的位置并修复它.

更新:以下是适用于IE8,但不适用于IE9或IE11(因此IE10可能不适用):

因为这是在IE中特别发生的,如果它们是运行时(而不是编译)错误,你可以使用它window.onerror来处理(抑制)它们,这些错误来自你对其他答案的评论.从该链接:

若要取消事件的默认Internet Explorer错误消息window,请将对象的returnValue属性设置eventtrue或仅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)

实时复制

  • 这在 IE 11 中似乎不起作用。从 onerror 处理程序返回 `true` 仍然会将错误记录到控制台。 (2认同)