js判斷是否是IE瀏覽器的(de)幾種方法
前幾天(tiān)在(zài)網上看到一個技術牛人寫的世界上判斷是(shì)否IE瀏覽器之最短的js代碼,如下:
<script> if(!+[1,])alert("這(zhè)是ie瀏覽器"); else alert("這不是ie瀏覽器"); </script> |
怎麽(me)樣(yàng),強(qiáng)悍吧。今天在博客園又看到(dào)一位(wèi)朋友總結了(le)其(qí)它(tā)一些判斷方法(實例(lì)代碼),於(yú)是烈火把這些(xiē)教程轉載給大(dà)家,期待對您(nín)有所幫(bāng)助:
其實有(yǒu)很多判(pàn)斷(duàn)的方法,大都(dōu)是根據瀏覽器的特性(xìng)來的。
比如庫prototype的方(fāng)法(fǎ)是:!!(window.attachEvent && navigator.userAgent.indexOf('Opera') === -1) 。就是(shì)根據(jù)ie支持window.attachEvent添加偵(zhēn)聽事件(jiàn),非ie用window.addEventListener添加偵聽事(shì)件來判斷的。navigator.userAgent.indexOf('Opera') === -1是因為opara瀏覽器能偽裝成(chéng)ie.如果(guǒ)!!(window.attachEvent )為真(zhēn),就是ie;反之,如果(guǒ)!window.addEventListener為真,也可以判斷為ie.
Ext使(shǐ)用的是!"1"[0],他利用IE無法使用數組下標訪問字(zì)符串的特(tè)性來判斷。在ie8下好(hǎo)像有(yǒu)問題。
在!+[1,]還未被發現前,判斷ie最短的表達式是 !+"\v1".它利用的(de)是ie不支持垂直製表符的(de)特性。
以前還有一個常(cháng)用方法是document.all,由(yóu)於opera瀏覽(lǎn)器能偽裝(zhuāng)成ie。可以這樣寫(xiě):!!(document.all && navigator.userAgent.indexOf('Opera') === -1).
還有很多,先記這幾條,便於工作時查閱。
1.+[1,]
2.!+"\v1"
3.!!(window.attachEvent && navigator.userAgent.indexOf('Opera') === -1)
4.!!(!window.addEventListener&& navigator.userAgent.indexOf('Opera') === -1)
5.!!(document.all && navigator.userAgent.indexOf('Opera') === -1)
關鍵詞(cí):js,IE瀏覽器
閱讀本文後您有什麽感(gǎn)想? 已有 人給出評價!
- 0
- 0
- 0
- 0
- 0
- 0