2013-03-27 137 views
0

在IE中有一个相当奇怪的问题。当我启动IE并加载一个页面(来自本地域,我们称它为“http://amazing.dev/”)时,网站上的JavaScript不会运行。JavaScript在第一次运行时没有在IE中运行

我知道你在想什么,打开JS你plonker(http://goo.gl/FnzoW)。它已经开始,我知道它的原因是,当我启动开发人员工具并重新加载页面时,JS运行。

这个网站有很多JS,所以它可以是任何东西。但是没有错误,没有警告,什么都没有。重新加载时,完美无缺!

任何想法/经验这将有助于大规模!它可能只是我的机器!

+1

你有没有JS错误?检查控制台。 JS错误可能会破坏_all_代码的执行。也许存在定时错误,如依赖一个文件在另一个文件之前执行。 – Halcyon 2013-03-27 16:36:32

+1

是否有任何console.log语句? IE不公开关闭开发工具的全局控制台对象。 – Flo 2013-03-27 16:37:33

+0

不,如我所说,没有错误,并与控制台打开页面重新加载,一切工作正常! – jamesmhaley 2013-03-27 16:37:36

回答

2

如果只有当您没有启动开发人员工具时才会出现问题,则可能是代码中的某处调用了console.log。控制台在您打开这些工具之前不可用。

您可以使用此代码(我不是作者),防止死机:

if (!window.console) { 
    var names = ["log", "debug", "info", "warn", "error", "assert", "dir", "dirxml", 
    "group", "groupEnd", "time", "timeEnd", "count", "trace", "profile", "profileEnd"]; 
    window.console = {}; 
    for (var i = 0; i < names.length; ++i) { 
     window.console[names[i]] = function() {}; 
    } 
}; 
+0

我以前见过这个脚本,但从未使用它。很有帮助。谢谢! – jamesmhaley 2013-03-27 16:51:07

1

的问题是,在IE上没有一个控制台对象的时候,调试器没有打开。这就是为什么调试器打开一切正常适合你。

只是将其添加到页面的开头,它可能会工作。

if (typeof console == "undefined") { 
    this.console = {log: function() {}}; 
} 
相关问题