天天看點

js快速判斷IE浏覽器(相容IE10與IE11)1 判斷IE浏覽器與非IE 浏覽器2 判斷IE6浏覽器3 判斷IE7浏覽器4 判斷IE8浏覽器5 判斷IE9、IE10、IE11浏覽器6  判斷其他浏覽器

在很多時候,我們一般采用navigator.userAgent和正則表達來判斷IE浏覽器版本,下面介紹用IE浏覽器中不同特性來判斷IE浏覽器

IE浏覽器與非IE浏覽器的差別是IE浏覽器支援ActiveXObject,但是非IE浏覽器不支援ActiveXObject。在IE11浏覽器還沒出現的時候我們判斷IE和非IE經常是這麼寫的

但是在IE11中上面判斷的傳回的是false,我自己在IE11測試了下如下代碼

結果是

js快速判斷IE浏覽器(相容IE10與IE11)1 判斷IE浏覽器與非IE 浏覽器2 判斷IE6浏覽器3 判斷IE7浏覽器4 判斷IE8浏覽器5 判斷IE9、IE10、IE11浏覽器6  判斷其他浏覽器
js快速判斷IE浏覽器(相容IE10與IE11)1 判斷IE浏覽器與非IE 浏覽器2 判斷IE6浏覽器3 判斷IE7浏覽器4 判斷IE8浏覽器5 判斷IE9、IE10、IE11浏覽器6  判斷其他浏覽器

這是為什麼呢?明明ActiveXObject是存在的,怎麼就typeof的結果确實undefined。哪位知道結果的告訴我這是為什麼呢?為神馬?

這是我又不明白了"ActiveXObject" in window傳回的是true,為什麼以前判斷IE浏覽器的代碼在IE11中傳回的是false?再次求大牛們給個解釋。謝謝

下面就直接給出相容IE11判斷IE與非IE浏覽器的方法。

注意前提條件是我們的程式代碼中不要覆寫ActiveXObject,應該沒有哪個程式這麼做吧。呵呵。

從IE7開始IE是支援XMLHttpRequest對象的,唯獨IE6是不支援的。根據這個特性和前面判斷IE的函數isIe()我們就知道怎麼判斷IE6了吧。判斷方法如下

因為從IE8開始是支援文檔模式的,它支援document.documentMode。IE7是不支援的,但是IE7是支援XMLHttpRequest對象的。判斷方法如下

在從IE9開始,微軟慢慢的靠近标準,我們把IE678稱為非标準浏覽器,IE9+與其他如chrome,firefox浏覽器稱為标準浏覽器。兩者的差別其中有一個是。大家測試下如下代碼。傳回的是什麼

那麼我們就可以根據上面的差別來判斷是IE8浏覽器。方法如下

IE9+下alert(!-[1,])傳回的是false,IE9+是支援addEventListener的,但是IE11浏覽器中是不支援原來IE中獨有的事件綁定attachEvent。根據這些差別我們就能區分出IE9、IE10、IE11浏覽器了。

繼續閱讀