IE9的一個bug

在寫JavaScript的時候,最煩人的就是進行瀏覽器適配,尤爲是IE。javascript

使用Chrome做爲調試工具時,console.log的功能是很是方便的,可是,包含console.log的代碼在IE下面就沒有這麼省心了。html

在較低版本的IE裏面,並無內置console對象,致使在代碼裏面試圖調用console.log函數時,會直接拋出異常,致使後面的腳本沒辦法繼續解釋。在較高版本的IE裏面,是有console對象的。java

嘗試吧下面的代碼保存爲HTML文件,使用IE9執行:面試

<script>
    alert("1");
    console.log("2");
    alert("3");
</script>

這段代碼在IE下面運行會有兩種結果:瀏覽器

  1. 沒有打開過開發人員工具函數

    只會出現一個alert彈窗工具

  2. 打開過開發人員工具測試

    會出現兩個alert彈窗調試

無論你是怎麼想的,當我得知這一狀況致使個人腳本工做異常的時候,真是有千萬頭草泥馬在心頭奔馳而過。這個錯誤比較蛋疼的地方是:1. 瀏覽器不報錯,2. 無法「調試」。code

錯誤緣由這裏說的比較清楚,簡單來講就是必須打開開發者工具,JavaScript解釋環境纔會有console變量。

解決方法也很簡單,有如下幾種:

  1. 避免在IE中使用console

  2. 使用console時先對console進行判斷

var console = console || {
    log: function () {}
}

目前在IE9及以前的版本是有這個問題的,高版本未測試。

相關文章
相關標籤/搜索