2016-08-15 80 views
0

IE有一個功能,忽略通過console.log()的所有輸出,直到我按F12或以其他方式打開Developer Tools。從那時起,即使關閉開發工具一段時間,控制檯中的所有輸出都會保留。如何配置IE以在我的頁面加載後立即開始記錄?

有沒有辦法強制IE保持控制檯輸出從一開始?無需打開開發人員工具?

我使用的是IE 11

回答

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( '本機代碼')!== -1

這要是什麼console.log包含通話時不開放 F12 Devtools。

儘管如此,執行console.log烏斯停止工作,當你打開它後關閉Devtools ...

+0

我的問題是,IE瀏覽器會忽略所有來電CONSOLE.LOG直到我打開開發工具的第一次。我對其他地方沒有興趣。如果事實證明通過AJAX將日誌消息發送到服務器是唯一的解決方法,我會記住這一點。 –

+0

這是一個[已知的錯誤](http://stackoverflow.com/questions/3326650/console-is-undefined-error-for-internet-explorer),我看到的唯一方法是緩衝對控制檯的調用。開發工具打開之前的日誌;我做了一個提琴手草案[這裏](https://jsfiddle.net/jaymz666/ahnyfpwj/14/) – bsoulier

+0

我沒有得到錯誤。 console.log()只是沒有做任何事情。我已經分叉小提琴:https://jsfiddle.net/9qex9o09/隨着IE 11,在輸出窗口等待託託4,然後打開開發工具。你只會在控制檯中看到「Todo 4」,Toto 1..3將會丟失。 –

相關問題