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

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

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

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

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

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

相關(guān)文章

  • 解決layui前端框架 form表單,table表等內(nèi)置控件不顯示的問題

    解決layui前端框架 form表單,table表等內(nèi)置控件不顯示的問題

    今天小編就為大家分享一篇解決layui前端框架 form表單,table表等內(nèi)置控件不顯示的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-08-08
  • 基于原生js實現(xiàn)判斷元素是否有指定class名

    基于原生js實現(xiàn)判斷元素是否有指定class名

    這篇文章主要介紹了基于原生js實現(xiàn)判斷元素是否有指定class名,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-07-07
  • JavaScript數(shù)組去重的幾種方法效率測試

    JavaScript數(shù)組去重的幾種方法效率測試

    JavaScript數(shù)組去重是前端面試酷愛的問題,問題簡單而又能看出程序員對計算機程序執(zhí)行過程的理解如何。數(shù)組去重的方法有很多,到底哪種是最理想的我不清楚。于是我測試了下數(shù)組去重的效率。測試二十萬個數(shù)據(jù),隨著數(shù)據(jù)越多效率很明顯的就體驗了出來。下面來一起看看吧。
    2016-10-10
  • 詳解TypeScript中的箭頭函數(shù)如何實現(xiàn)重載

    詳解TypeScript中的箭頭函數(shù)如何實現(xiàn)重載

    這篇文章主要為大家詳細介紹了TypeScript中的箭頭函數(shù)是如何實現(xiàn)重載的,文中的示例代碼講解詳細,具有一定的參考價值,需要的可以參考一下
    2023-05-05
  • 最新評論