IE9不能直接引用Console

公司有個項目,功能很簡單,讀取業務數據,展示在頁面上。

一個很簡單的問題,卻因爲目標瀏覽器是IE9,卡了三天。

前端給的反饋是:

在IE9下,程序一會兒對,一會兒不對……第一次刷不出來,多刷幾次就刷出來了。

這些話,聽着就覺得怪,如果聽之任之,就成了不明就裏一筆糊塗賬。

於是,我開始跟他們一起調試,就在大家快要放棄的時候,我發現,這個“一會兒對,一會兒不對”跟console對象的引用有關,只要把引用了console對象的語句註釋掉,腳本的運行結果就總是正確,反之,就“一會兒對,一會兒不對”。

BUG找到了,但我還是覺得這個console得徹底搞清楚,不然還得至少踩兩三年的坑。

[Does IE9 support console.log, and is it a real function?
](https://stackoverflow.com/que...

In Internet Explorer 9 (and 8), the console object is only exposed when the developer tools are opened for a particular tab. If you hide the developer tools window for that tab, the console object remains exposed for each page you navigate to. If you open a new tab, you must also open the developer tools for that tab in order for the console object to be exposed.

真不知道這傢伙從哪學會的祕籍,這麼詭異的現象,即便自己發現了,也不敢這樣總結。

結論:

IE9不能直接用console,一旦語句中出現console引用,後面的代碼就不再執行了,console就像個黑洞,把光都吸走了,無影無蹤。

一旦你想要藉助Development Tools去調試一下,看看是不是console引用除了問題,IE9就會馬上創建一個console對象,然後這個BUG就不見了,即便這時候你關掉Development Tools,console依然還在,然後你再打開新頁面,console又成了黑洞了。

如果沒有旁人的幫助,自己是不可能從這個坑裏爬出來的,只能告訴客戶,我們的程序在IE9中運行的結果是“一會對,一會兒不對,它是隨機的”。

解決方法:window.console

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章