IE9 console undefined 錯誤

今天在查網站的問題時發現一個鬼打牆的現象,在 IE9 功能不正常,但開啟 Dev Tools 重整後又恢復正常,也看不到任何的錯誤訊息。

後來發現是因為在 JavaScript 裡寫了 console.error() ,但 IE9 的 console 物件要在開啟 Dev Tools 後才會存在,導致正常瀏覽時會產生 console undefined 錯誤,中斷了後續 JavaScript 的執行。而開啟 Dev Tools 後 console 物件已經創建,所以功能就正常,也看不到任何的錯誤訊息。

html5-boilerplate 有針對這個問題做了不錯的 workaround,可避免在 console 物件未定義時呼叫 console 的方法而產生錯誤。