【问题标题】:IE8 and console.log - Fallback to stub if developer console isn't openIE8 和 console.log - 如果开发人员控制台未打开,则回退到存根
【发布时间】:2013-11-13 18:32:07
【问题描述】:

我目前使用以下存根来帮助防止 console.log 在 Internet Explorer 8 中引发错误:

//  Protect against IE8 not having developer console open.
var console = window.console || {
    "log": function () {
    },
    "error": function () {
    },
    "trace": function () {
    }
};

我对这个解决方案不满意,因为在针对 IE8 进行调试时,我的控制台日志被完全删除,因为开发人员窗口最初没有打开。我需要在打开开发人员窗口的情况下完全重新加载我的页面,以免我的控制台日志被删除。

我希望提出一个更强大的解决方案,在尝试登录时检查 console.log 的存在,而不是在第一次运行时检查。这将允许我在启动程序后打开 IE8 开发者控制台,但仍然会看到错误。

有没有人有类似的解决方案?是否需要使用新变量进行日志记录的解决方案?例如:

var newConsole = window.console || {
    "log": function () {
        if( window.console ) window.console.log(arguments);
    },
    "error": function () {
        if( window.console ) window.console.error(arguments);
    },
    "trace": function () {
        if( window.console ) window.console.trace(arguments);
    }
};

【问题讨论】:

    标签: javascript internet-explorer-8


    【解决方案1】:

    我需要在开发人员窗口打开的情况下完全重新加载我的页面,以便我的控制台日志不会被删除。

    使用window.onerror 而不是存根:

    window.onerror = function(message, url, linenumber) {
      try
        {
        console.log([message, url, linenumber]);
        }
      catch(e)
        {
        location.hash = [message, url, linenumber];
        }
    }
    

    参考文献

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-11-15
      • 2019-03-29
      • 1970-01-01
      • 1970-01-01
      • 2015-07-27
      • 2016-05-08
      相关资源
      最近更新 更多