IE有一项功能会忽略所有输出console.log()
,直到我按 F12 或以其他方式打开开发人员工具。从那时起,即使我关闭开发工具一段时间,控制台中的所有输出都将保留。
有没有办法强制IE从一开始就保持控制台输出?无需打开开发人员工具?
我正在使用IE 11
答案 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停止工作......