js ie非ie瀏覽器的幾種判斷方法小結

最近在 司徒正美js 全世界最短的IE瀏覽器判斷代碼 一文 , 看到只有6byte的判斷ie與非ie的方法 。其代碼如下:

js ie非ie瀏覽器的幾種判斷方法小結

【js ie非ie瀏覽器的幾種判斷方法小結】其實有很多判斷的方法,大都是根據瀏覽器的特性來的 。
比如庫prototype的方法是:!!(window.attachEvent && navigator.userAgent.indexOf('Opera') === -1)。就是根據ie支持window.attachEvent添加偵聽事件,非ie用window.addEventListener添加偵聽事件來判斷的 。navigator.userAgent.indexOf('Opera') === -1是因為opara瀏覽器能偽裝成ie.如果!!(window.attachEvent )為真 , 就是ie;反之,如果!window.addEventListener為真,也可以判斷為ie.
Ext使用的是!"1"[0],他利用IE無法使用數組下標訪問字符串的特性來判斷 。在ie8下好像有問題 。
在! [1,]還未被發現前,判斷ie最短的表達式是 ! "1".它利用的是ie不支持垂直制表符的特性 。
以前還有一個常用方法是document.all , 由于opera瀏覽器能偽裝成ie 。可以這樣寫:!!(document.all && navigator.userAgent.indexOf('Opera') === -1).
還有很多,先記這幾條,便于工作時查閱 。
1. [1,]
2.! "1"
3.!!(window.attachEvent && navigator.userAgent.indexOf('Opera') === -1)
4.!!(!window.addEventListener&& navigator.userAgent.indexOf('Opera') === -1)
5.!!(document.all && navigator.userAgent.indexOf('Opera') === -1)

相關經驗推薦