首頁 >web前端 >js教程 >JavaScript中一個奇葩的IE瀏覽器判斷方法_javascript技巧

JavaScript中一個奇葩的IE瀏覽器判斷方法_javascript技巧

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB原創
2016-05-16 16:52:161465瀏覽

記得在網上Down的很多源碼用的最多的一種方式就是:

複製代碼 代碼如下:
var ie = document.all();

這是因為IE瀏覽器的document下有all方法,而所謂的標準瀏覽器卻沒有,所以很長的一段時間,這個是一種非常普遍的方法。
之後大家開始追求起簡短,就像在這之後一度流行的一種方法:
複製程式碼 程式碼如下:
var ie = ! "v1";

這個是利用IE不支持垂直製表符的特性而判別的,僅僅7個字符已經很讓人震驚了,可是這個紀錄被一個俄國人在今年早些的時候打破了,人家只需要6個字元就可以搞定了。
我們暫且不討論這一個字符能夠做什麼,但把它看作是一種研究,或者你說他是閒的那啥痛也行(吐槽~)。
複製代碼 代碼如下:
var ie = ! - [1,];

其實它的原理很簡單,[1,]在標準瀏覽器會回傳字串"1",相當於呼叫[1,].toString,IE則回傳"1,"。但這樣IE與標準都會通過檢測,因此使用負號強制轉換為數字,標準能成功轉換為1,1會在if中自動轉換為true,而IE則轉換為NaN,再自動轉換為false!查看DEMO。
很簡單吧?一定會有很多人跟我一樣在想,我怎麼沒想到呢?是啊,我怎麼沒想到呢? (笑~)
陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn