如何判斷瀏覽器是否是IE11

陳冰發表於2014-11-21

由於IE由來已久的特立獨行,在設計網頁時,如果想讓網站在各瀏覽器下的外觀看起來都保持一致,就必須給IE開小灶,專門編寫針對IE的CSS。要達到這個目的,自然首先就要識別出IE。

但自從IE瀏覽器升級到版本11之後,很多之前可以用來判斷IE瀏覽器的方法均告失效。比如window.attachEvent方法、HTML註釋法、Navigator.appName方法等等,無一例外都敗下陣來。舉個例子,如果你使用Navigator.appName方法,你會發現IE返回的瀏覽器名是Netscape,而其他瀏覽器返回的也是Netscape。

經過一番鑽研,總算讓我找到一個方法可以準確的識別出IE,辦法就是使用JavaScript的Navigator.userAgent,因為對於IE瀏覽器,其返回的資訊中有一個Trident字串,這是獨屬於IE的。 實現程式碼如下:

var a1 = navigator.userAgent;

var yesIE = a1.search(/Trident/i);

在返回的字串a1中使用正規表示式匹配Trident,若找到則返回出現位置的索引值,找不到則返回-1。判斷yesIE是否大於0即可判斷是否是IE11。

相關文章