如何在Internet Explorer中使用控制台日志记录?

时间:2010-04-17 00:22:17

标签: javascript internet-explorer internet-explorer-8 console firebug

IE是否有控制台记录器?我正在尝试将一堆测试/断言记录到控制台,但我不能在IE中执行此操作。

10 个答案:

答案 0 :(得分:144)

您可以通过启动“开发人员工具”(F12)来访问IE8脚本控制台。单击“脚本”选项卡,然后单击右侧的“控制台”。

在JavaScript代码中,您可以执行以下任何操作:

<script type="text/javascript">
    console.log('some msg');
    console.info('information');
    console.warn('some warning');
    console.error('some error');
    console.assert(false, 'YOU FAIL');
</script>

此外,您可以通过调用console.clear()清除控制台。

注意:看来您必须首先启动开发者工具,然后刷新页面才能使用。

答案 1 :(得分:24)

从版本8开始,Internet Explorer就像其他浏览器一样拥有自己的控制台。但是,如果未启用控制台,则console对象不存在,并且对console.log的调用将引发错误。

另一种选择是使用log4javascript(完全披露:由我编写),它有自己的日志控制台,适用于所有主流浏览器,包括IE&gt; = 5,以及浏览器自己的控制台的包装器这避免了未定义console的问题。

答案 2 :(得分:12)

如果在生产中使用console.log(),则非常重要:

如果您最终将console.log()命令发布到生产中,则需要对IE进行某种修复 - 因为console仅在F12调试模式下定义。

if (typeof console == "undefined") {
    this.console = { log: function (msg) { alert(msg); } };
}

[显然删除警报(msg);声明一旦你确认它有效]

有关其他解决方案和更多详细信息,请参阅'console' is undefined error for Internet Explorer

答案 3 :(得分:9)

Firebug Lite在IE中提供了很多Firebug功能。

答案 4 :(得分:5)

简单的IE7及以下垫片,为其他浏览器保留行号:

/* console shim*/
(function () {
    var f = function () {};
    if (!window.console) {
        window.console = {
            log:f, info:f, warn:f, debug:f, error:f
        };
    }
}());

答案 5 :(得分:3)

在他的书“Javascript Ninja的秘密”中,John Resig(jQuery的创建者)有一个非常简单的代码,可以处理跨浏览器的console.log问题。他解释说,他希望有一条适用于所有浏览器的日志消息,以下是他编码的方式:

function log() {
  try {
    console.log.apply(console, arguments);
  } catch(e) {
  try {
    opera.postError.apply(opera, arguments);
  }
  catch(e) {
    alert(Array.prototype.join.call( arguments, " "));
  }
}

答案 6 :(得分:2)

对于仅限于console.log(无调试,跟踪,...)的IE8或控制台支持,您可以执行以下操作:

  • 如果控制台或console.log未定义:为其创建虚拟函数 控制台功能(跟踪,调试,日志,......)

    window.console = { debug : function() {}, ...};

  • 否则,如果定义了console.log(IE8)并且未定义console.debug(任何其他):将所有日志记录功能重定向到console.log,这样可以保留这些日志!

    window.console = { debug : window.console.log, ...};

不确定各种IE版本中的断言支持,但欢迎任何建议。

答案 7 :(得分:0)

您可以使用跨浏览器包装器:https://github.com/MichaelZelensky/log.js

答案 8 :(得分:0)

对于IE的旧版本(在IE8之前),在花费数小时研究并尝试许多不同的解决方案后,在IE Developer Toolbar中看到控制台日志并不是直接的,最后,以下工具栏对我来说是很好的工具: / p>

这样做的主要优点是为IE6或IE7提供了一个控制台,因此你可以看到错误是什么(在控制台日志中)

  • 注意:
  • 免费
  • 工具栏的屏幕截图

enter image description here

答案 9 :(得分:0)

我一直在做这样的事情:

var log = (function () {
  try {
    return console.log;
  }
  catch (e) {
    return function () {};
  }
}());

从那时起,总是使用log(...),不要太喜欢使用console。[warn | error |等],只需保持简单即可。我通常更喜欢简单的解决方案,而不是花哨的外部库,它通常会有所回报。

避免IE问题的简单方法(不存在console.log)