IE - 防止IE中显示错误

时间:2011-03-14 16:22:01

标签: javascript internet-explorer error-handling

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

我想隐藏最终用户的错误,因为目前他会看到一个显示错误的小图标。

我怎样才能做到这一点?

谢谢

3 个答案:

答案 0 :(得分:6)

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

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

因为这是在IE中特别发生的,所以可以使用window.onerror来处理(抑制)它们,如果它们是运行时(不是编译)错误,那么从你对另一个答案的评论听起来像是他们。从那个链接:

  

要取消window事件的默认Internet Explorer错误消息,请将returnValue对象的event属性设置为true,或者只返回true在Microsoft JScript中。

     

onerror事件会触发运行时错误,但不会触发编译错误。此外,返回true不会抑制脚本调试程序引发的错误对话框。要关闭脚本调试程序,请通过从工具菜单中选择 Internet选项来禁用Internet Explorer中的脚本调试。点击高级标签,然后选中相应的复选框。

示例:

此代码导致错误(因为我试图取消引用undefined):

document.getElementById('theButton').onclick = function() {
  var d;

  display(d.foo);
};

Live copy

但是如果我们添加这个,那么错误会被抑制,因为我们告诉IE我们处理它:

window.onerror = function() {
  // Return true to tell IE we handled it
  return true;
};

Live copy

答案 1 :(得分:2)

据我所知,没有真正的方法可以做到这一点,因为你将控制浏览器(AKA应用程序),这将是一件坏事。用户可以manually turn off those errors,或者您可以查看是否可以修复JavaScript。但是,除了这两个解决方案之外,我认为你运气不好。

答案 2 :(得分:2)

修复错误 - 大部分时间,只有IE浏览器才会出现微不足道的问题。对于这些情况,修复JSLint发现的问题有助于90%的内容:http://www.jslint.com/lint.html