在IE11中,如何使用console.log?

16

尝试使用console.log(),但总是打印undefined

尝试使用像Console.log IE9 issue这样的解决方案,但也没有用。

IE11文档中,有以下句子: 最后但并非最不重要的,忘记console.log()吧。新工具现在轻松支持跟踪点,允许您以与通过console.log()相同的方式监视特定值。

这是什么意思?如何在IE11中使用console.log打印变量?


系统:Windows 7 (VirtualBox IE镜像)

IE版本:11


看起来console.dir()是一种选择,但console.log()怎么办?它在文档中,但为什么不起作用?


你可能正在查看返回值。控制台将输出它执行的最后一个语句的返回值。 - user229044
但是无论变量包含什么内容,console.log() 都会打印 undefined,而 console.dir() 不会,为什么呢? - Kamel
2
我以前见过这个问题,但是无法重现。console.log、console.info等在我的机器上都正常工作。你可能有第三方库会改变console对象吗? - Chris Love
2个回答

10

虽然这是一个老问题,但最近在我使用IE11的时候仍然让我头痛。

简单来说:除非打开开发者工具(即按下IE11中的F12),否则console对象不会被初始化。

因此解决方法可以是,在加载console.log()之前打开开发者工具。

在我的情况下,当我的页面准备好时,console.log已加载,所以我打开开发者工具并刷新页面以查看我的日志。


4
我最近在运行Windows10最新预览版时遇到了console.log的问题。下面是我尝试记录的代码。日志将显示我的对象函数,proto和用户为未定义。我可以通过将IE版本更改为9或在console.log()上设置断点来“解决”这个问题。据我所知,他们只是使控制台方法更加严格,以符合this documentation的规范。现在我遵循的规则是始终在输出对象/变量时使用console.dir()。
  var PM = PM || {
    users:[]
  };

  var User = (function($){
    //Private Static Variables

    //Constructor
    function User(obj){
      this.id = obj.id;
      this.first = obj.first;
      this.last = obj.last;
    };

    return User;
  })(jQuery); 

  var John = new User({
    id: 1,
    first: 'John',
    last: 'Hargis'
  });
  var Nicole = new User({
    id: 2,
    first: 'Nicole',
    last: 'Hargis'
  });

  PM.users = {
    1: John,
    2: Nicole
  };
  window.console.log(PM); //Undefined
  window.console.dir(PM); //Works    

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接