如何在我的页面加载后配置IE以开始记录?

时间:2016-08-15 13:11:52

标签: internet-explorer logging console

IE有一项功能会忽略所有输出console.log(),直到我按 F12 或以其他方式打开开发人员工具。从那时起,即使我关闭开发工具一段时间,控制台中的所有输出都将保留。

有没有办法强制IE从一开始就保持控制台输出?无需打开开发人员工具?

我正在使用IE 11

1 个答案:

答案 0 :(得分:1)

完成更新:

这是我昨天建立的JsFiddle脚本的重写版本:

下面的版本不包含调试跟踪,而JsFiddle version则包含调试跟踪。

var bufferedConsoleCalls = [];

window.bufferedConsoleLog = function(message) {
  var consoleMethod = window.console.log.toString();
    if (consoleMethod.indexOf('native code') !== -1) {
    bufferedConsoleCalls.push(message);
  }
  else {
    if (bufferedConsoleCalls.length > 0) {
      console.log('previous buffered calls :');
      console.log(bufferedConsoleCalls);
      bufferedConsoleCalls = [];
    }
    console.log(message);
  }
}

// sample code added to generate console entries.
// remove lines below when used for real scenarios.
var count = 1;
setInterval(function() {
  // Simulated call from page, calling bufferedConsoleLog instead of console.log
  bufferedConsoleLog('Log' + count);
  count ++;
}, 1000);

问题是IE11实际上有一个console.log方法的实现,似乎没有做任何事情。我做了一些额外的测试

  

window.console.log.toString()。indexOf(' native code')!== -1

如果在没有打开F12 Devtools的情况下调用时包含console.log包含的内容。

仍然,在打开它后关闭Devtools时,console.log ust停止工作......