JavaScript中奇葩的IE瀏覽器怎么判斷?判斷的方法說明

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

JavaScript中奇葩的IE瀏覽器怎么判斷?判斷的方法說明

【JavaScript中奇葩的IE瀏覽器怎么判斷?判斷的方法說明】這是因為IE瀏覽器的document下有all方法,而所謂的標準瀏覽器卻沒有,所以很長的一段時間,這個是一種非常普遍的方法 。
在之后大家開始追求起簡短,就像在這之后一度流行的一種方法:
JavaScript中奇葩的IE瀏覽器怎么判斷?判斷的方法說明

這個是利用IE不支持垂直制表符的特性而判別的,僅僅7個字符已經很讓人震驚了,可是這個記錄被一個俄國人在今年早些的時候打破了,人家只需要6個字符就可以搞定了 。
我們暫且不討論這一個字符能夠做什么 , 但把它看作是一種研究,或者你說他是閑的那啥痛也行(吐槽~) 。
JavaScript中奇葩的IE瀏覽器怎么判斷?判斷的方法說明

其實它的原理很簡單,[1,]在標準瀏覽器會返回字符串"1",相當于調用[1,].toString,IE則返回"1," 。但是這樣IE與標準都會通過檢測,因此使用負號強制轉換為數字,標準能成功轉換為1,1會在if中自動轉換為true,而IE則轉換為NaN,再自動轉換為false!查看DEMO 。

相關經驗推薦