欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

JavaScript中一個(gè)奇葩的IE瀏覽器判斷方法

 更新時(shí)間:2014年04月16日 09:10:44   作者:  
在寫(xiě)原生的Javascript的時(shí)候,因?yàn)镮E的JS引擎與標(biāo)準(zhǔn)瀏覽器的JS引擎之間總有那么些差異,所以經(jīng)常會(huì)去判斷是否是IE瀏覽器
記得在網(wǎng)上Down的很多源碼用的最多的一種方式就是:
復(fù)制代碼 代碼如下:
var ie = document.all();

這是因?yàn)镮E瀏覽器的document下有all方法,而所謂的標(biāo)準(zhǔn)瀏覽器卻沒(méi)有,所以很長(zhǎng)的一段時(shí)間,這個(gè)是一種非常普遍的方法。
在之后大家開(kāi)始追求起簡(jiǎn)短,就像在這之后一度流行的一種方法:
復(fù)制代碼 代碼如下:
var ie = ! + "\v1";

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

其實(shí)它的原理很簡(jiǎn)單,[1,]在標(biāo)準(zhǔn)瀏覽器會(huì)返回字符串"1",相當(dāng)于調(diào)用[1,].toString,IE則返回"1,"。但是這樣IE與標(biāo)準(zhǔn)都會(huì)通過(guò)檢測(cè),因此使用負(fù)號(hào)強(qiáng)制轉(zhuǎn)換為數(shù)字,標(biāo)準(zhǔn)能成功轉(zhuǎn)換為1,1會(huì)在if中自動(dòng)轉(zhuǎn)換為true,而IE則轉(zhuǎn)換為NaN,再自動(dòng)轉(zhuǎn)換為false!查看DEMO。
很簡(jiǎn)單對(duì)吧?肯定會(huì)有很多人跟我一樣在想,我怎么就沒(méi)想到呢?是啊,我怎么就沒(méi)想到呢?(笑~)

相關(guān)文章

最新評(píng)論