【问题标题】:I.E. craches my JS script at first, then i press F12 and it works beaultifullyIE。一开始我的 JS 脚本崩溃了,然后我按 F12,它工作得很好
【发布时间】:2012-07-05 23:04:32
【问题描述】:

我有一个可以在所有浏览器中正常工作的 JS 脚本。 但令所有人惊讶的是,在 I.E.第一次尝试时它不起作用。

如果在加载页面后按 F12(打开即调试器)并刷新页面, 它工作正常!就像其他浏览器一样!但是对于这项工作,我必须按 F12。

当我们打开 i.e. 的调试器时,它会做些什么吗? 我找不到解决办法!

提前致谢。

【问题讨论】:

标签: javascript internet-explorer debugging crash


【解决方案1】:

当你没有打开调试器时,IE 认为没有 console.log 这样的东西,并给你调用未定义函数的错误。当你按 F12 时,你会得到控制台,因此 console.log 不再是未定义的。

您可以通过将其放在代码顶部来解决此问题:

if (!window.console) window.console = {};
if (!window.console.log) window.console.log = function () { };

而不是从您的代码中编辑出 console.log,这只会让浏览器在控制台不存在时什么都不做,如果它们未定义,则将它们定义为“什么都不做”函数。

如果您希望缩小 js 文件大小(对于移动使用尤其重要),您最终会希望删除发布版本上的详细日志记录。

【讨论】:

  • 太棒了!太感谢了。有效。我已经删除了我的控制台日志,因为我真的不需要它们。
  • 这个特殊的问题之前也让我很困惑。您也可以在代码中添加 if(typeof(console) == 'undefined') console = {log : function (text) {} }; 之类的内容,以保留您的 console.log 语句。
  • iWerner,如果您希望即使在不运行控制台的情况下也能够访问日志,那这不是一个坏主意。我这样做是因为我想如果我没有打开控制台,我可能根本不需要日志记录来做任何事情,所以我只是把它作为一个“什么都不做”的功能。
  • 希望我能在一周前看到这个。
【解决方案2】:

你的脚本中有console.log() 之类的东西吗?这可以解释,因为在您按 F12 之前没有控制台

【讨论】:

    【解决方案3】:

    上一篇文章的扩展版

    if (!('console' in window)) {
        var stub = function() { ; };
        window.console = {
            log : stub,
            info : stub,
            warn : stub,
            error : stub,
            assert : stub
        };
    }
    

    我将发布这个仅在需要时安装存根的新版本

    /**
     * On IE console is not set if not opened and debug doesn't exists
     */
    (function() {
        if (!('console' in window)) { window.console = {}; }
        var kind = ['log', 'info', 'warn', 'error', 'assert', 'debug'];
        var stub = function() { ; };
        for (var i = 0; i < kind.length; i++) {
            if (kind[i] in window.console) { continue; }
            window.console[kind[i]] = stub;
        }
    })();
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-12-02
      • 1970-01-01
      • 2019-02-02
      • 2019-04-18
      • 1970-01-01
      • 1970-01-01
      • 2011-07-10
      相关资源
      最近更新 更多