0

我在 vista 上遇到 IE9 的问题。我使用了 console.logs/errors/warns,但如果我还没有打开开发者工具,那似乎破坏了 IE9(找到了很多关于原因的文章)。所以我应用了以下内容以使 ie9 可以使用 console.log

window.console.log = function(){}
window.console.error = function(){}
window.console.warn = function(){}
window.console.info = function(){}
window.console.debug = function(){}

所以这似乎超过了以前的加载方式。过去我也遇到过一个问题,如果在对象定义上有一个尾随逗号,那么 IE 也会中断。

例子:

a = {a:1, b:2, c:3,}

我正在使用CoffeesScript,所以我假设这不是问题。

所以我的问题是似乎有一种 javascript 方法破坏了 Internet Explorer。但仅在尚未打开开发人员工具时。但是如果不打开开发人员工具,我就无法查看错误。

我可以在不初始化开发者控制台的情况下使我的 javascript 错误在 windows vista IE9 上可用吗

谢谢

4

1 回答 1

0

window.console当调试器未运行时,它本身未在 IE 中定义,因此您需要为 IE 添加此第一行:

window.console = {};
window.console.log = function(){}
window.console.error = function(){}
window.console.warn = function(){}
window.console.info = function(){}
window.console.debug = function(){}

就个人而言,我建议这样做可以照顾所有浏览器:

if (!window.console) {
    window.console = {};
    window.console.log = function(){}
    window.console.error = function(){}
    window.console.warn = function(){}
    window.console.info = function(){}
    window.console.debug = function(){}
}

如果这对困扰您的特定问题没有帮助,那么您可以尝试在可能出现问题的区域周围安装自己的异常处理程序,并尝试自己捕获异常。如果您不能使用调试器,您可能必须将有关异常的详细信息放在屏幕上(将它们附加到可见的 div 或将它们放在警报中)。

于 2013-09-11T05:32:18.847 回答