2012-10-10 65 views
1

我檢查了我的index.php並刪除了所有的console.log(),但是當我去IE7時,我仍然收到控制檯錯誤。有趣的是,如果我檢查在IE9中,然後將瀏覽器模式更改爲IE7,它可以正常工作,但是如果將該站點直接測試到IE7瀏覽器,則會顯示控制檯錯誤消息。IE控制檯問題

有關如何阻止此問題的任何想法嗎?

+4

真的很難說如何擺脫由未指定代碼生成的未指定的錯誤。 – Quentin

+2

如果你的意思是你*控制檯是未定義的* IE7中沒有控制檯的錯誤; http://stackoverflow.com/questions/3326650/console-is-undefined-error-for-internet-explorer –

+1

你是否包含舊版瀏覽器的具體js文件(''等),你有沒有試過清理你的瀏覽器緩存? (按Ctrl + F5幾次通常會訣竅) –

回答

2

您可能錯過了某個地方的console.log調用。 IE9切換到IE7的原因是,只要打開控制檯切換版本,就會創建控制檯對象。因此在IE9的IE7模擬模式下不會出現錯誤。

更好的解決方案是在您的JS代碼如下事先:

if (!window.console){console = {log:function(){}};} 

現在所有的console.log電話不會引發錯誤,但會被忽略。

我做了以下開發時:

var logging = 1; 
if (!window.console){console = {log:function(){}};} 
function _log(a) { if(logging) { console.log(a); } } 

,並繼續使用_log("foo")整個代碼。現在,您可以使用簡單的logging = 0切換日誌記錄,並且可以安全地防止丟失的控制檯對象。

+0

+1,是的。我通常使用consolelog()而不是console.log,它將檢查console和console.log的定義。這樣,如果我在彈出控制檯期間,消息將立即記錄。 –