2011-03-14 132 views
5

我正在开发一个Web应用程序。我的应用程序在Chrome和Firefox上运行良好,但由于某种原因,在IE中出现了一些错误。即使出现了几个错误,应用程序仍然可以顺利运行,没有明显的问题。IE - 防止在IE中显示错误

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

我该如何做到这一点?

谢谢

+2

(开玩笑):尝试/抓住一切。 – 2011-03-14 17:50:17

回答

6

到目前为止,要做的最好的事情是找出代码导致错误的原因并解决该问题。

因为这是专门在IE中发生的事情,你可以使用window.onerror处理(禁止)他们,如果他们运行时(不是编译)错误,这从另一个回答您的评论听起来像他们。从该链接:

要抑制的window事件默认Internet Explorer错误信息时,event对象的returnValue属性设置为true或者干脆Microsoft JScript中返回true

onerror事件触发运行时错误,但不会出现编译错误。另外,通过脚本调试器引发的错误对话框不会被返回true所抑制。要关闭脚本调试器,请通过从工具菜单中选择Internet选项来禁用Internet Explorer中的脚本调试。单击高级选项卡,然后选择适当的复选框(es)。

例子:

此代码导致错误(因为我想提领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

3

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

+0

@vondip:推荐作为一个单独的问题提出一个单独的问题。 – 2011-03-14 16:28:08

+0

@ T.J。 Crowder-会的,谢谢 – vondip 2011-03-14 16:29:45

1

修正错误 - 大部分的时间,他们将一些小事,只有IE浏览器跳闸。对于这些情况,修复JSLint发现的问题有助于90%的东西:http://www.jslint.com/lint.html