最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

簡(jiǎn)潔短小的 JavaScript IE 瀏覽器判定代碼

 更新時(shí)間:2010年03月21日 23:39:41   作者:  
IE瀏覽器不管是什么版本,總是跟Web標(biāo)準(zhǔn)有些不太兼容。對(duì)于代碼工作者來(lái)說(shuō),自然是苦不堪言,為了考慮IE的兼容問(wèn)題,不管是寫 CSS 還是 JS,往往都要對(duì) IE 特別對(duì)待,這就少不了做些判斷。本文不討論如何區(qū)分 IE 的樣式,僅是 JS 判定 IE 瀏覽器。
這個(gè)目前世界上最短的 Javascript 判定 IE 瀏覽器的方法來(lái)自俄羅斯!它已經(jīng)在各版本的 IE 以及目前其他流行的瀏覽器上經(jīng)過(guò)測(cè)試,基于 IE 的 Bug,微軟雖然已經(jīng)意識(shí)到,但是從來(lái)沒(méi)有糾正過(guò)。
復(fù)制代碼 代碼如下:

<script type='text/javascript'>
var ie = !-[1,];
alert(ie);
</script>

以上代碼運(yùn)行結(jié)果:IE 下返回true,其他標(biāo)準(zhǔn)瀏覽器返回false。!-[1,],僅僅只有 6 bytes!
不過(guò)如果反過(guò)來(lái)判斷,標(biāo)準(zhǔn)瀏覽器返回 true 而 IE 返回 false的話,則可以再縮短一個(gè)byte。
復(fù)制代碼 代碼如下:

<script type='text/javascript'>
notIe = -[1,];
if(-[1,]){
// 標(biāo)準(zhǔn)瀏覽器代碼
}else{
// IE Only的代碼
}
</script>

看完了這些,你們是不是很好奇這些是怎么運(yùn)行的?請(qǐng)繼續(xù)看下文。
這個(gè) Bug 產(chǎn)生的原因是 IE 會(huì)添加一個(gè)空數(shù)組元素到數(shù)組元素的總數(shù)里。
[1,]. Length標(biāo)準(zhǔn)瀏覽器會(huì)返回 1 (基于標(biāo)準(zhǔn)的 ECMAscript ,在數(shù)組最后的逗號(hào)”,”會(huì)被忽略,這是為了方便在一列里顯示以及自動(dòng)生成等),但是 IE 會(huì)返回 2。當(dāng)你打印這個(gè)數(shù)組的時(shí)候 IE 將會(huì)返回 “1, “,也就是兩個(gè)元素,而其他標(biāo)準(zhǔn)瀏覽器將會(huì)返回 “1″。
這很容易驗(yàn)證,比如在 IE 和 FF中運(yùn)行以下代碼:
復(fù)制代碼 代碼如下:

<script type='text/javascript'>
alert([,]==',');
//這是8個(gè)字符判定IE
</script>

[1,]實(shí)際上瀏覽器的操作是toString()轉(zhuǎn)換成字符串的操作,-[1,]是將字符串強(qiáng)制轉(zhuǎn)換為數(shù)字。而 IE 將會(huì)返回 NaN,但是遺憾的是 NaN 并不是一個(gè)數(shù)字,因?yàn)閇1,]轉(zhuǎn)換成字符串后的”1,”里面帶有逗號(hào)。而其他標(biāo)準(zhǔn)瀏覽器會(huì)返回 -1,這是一個(gè)非 0 的數(shù)字。
你知道,NaN 轉(zhuǎn)換成 Boolean 型將返回 false,所以-[1,]在 IE 下將返回 false。而任何非 0 的數(shù)字轉(zhuǎn)換成 Boolean 型(例如-1),在 標(biāo)準(zhǔn)瀏覽器下都將返回 true。所以我們得到了一個(gè)判定結(jié)果,!-[1,]在 IE 下返回true,而在其他標(biāo)準(zhǔn)瀏覽器下返回 false。也就達(dá)到了區(qū)分判定 IE 瀏覽器的目的。
當(dāng)然,如前文所說(shuō),這個(gè) Bug 其實(shí)微軟很早就已經(jīng)知道,但是卻一直沒(méi)有去修復(fù)它,所以在未來(lái)的 > IE8 的 IE 瀏覽器也就不確定是否依舊可以,不過(guò)基本上這么多代的 IE 都沒(méi)有修復(fù),未來(lái)的 IE 也不太會(huì)去修復(fù)的樣子。
以下是其他的一些區(qū)分判定 IE 瀏覽器的代碼,也可以參考下:
復(fù)制代碼 代碼如下:

<script type='text/javascript'>
// Option from Dean Edwards:
var ie = /*@cc_on!@*/false;
// Use the commented line:
var ie//@cc_on=1;
// Variation (shorter variable):
var ie = '\v'=='v';
/ / Option to Gareth Hayes (former record-holder):
var ie = !+"\v1";
</ script>

相關(guān)文章

  • JavaScript操作URL的相關(guān)內(nèi)容集錦

    JavaScript操作URL的相關(guān)內(nèi)容集錦

    這篇文章主要介紹了JavaScript操作URL的相關(guān)內(nèi)容集錦的相關(guān)資料,需要的朋友可以參考下
    2015-10-10
  • getElementByIdx_x js自定義getElementById函數(shù)

    getElementByIdx_x js自定義getElementById函數(shù)

    最近看JS代碼,發(fā)現(xiàn)不少人問(wèn)getElementByIdx_x是什么函數(shù),其實(shí)就是個(gè)getElementById自定義函數(shù)
    2012-01-01
  • 基于JavaScript實(shí)現(xiàn)仿京東圖片輪播效果

    基于JavaScript實(shí)現(xiàn)仿京東圖片輪播效果

    這篇文章主要介紹了基于JavaScript實(shí)現(xiàn)仿京東圖片輪播效果,代碼簡(jiǎn)單易懂,需要的小伙伴參考下吧
    2015-11-11
  • typeScript中數(shù)組類型定義及應(yīng)用詳解

    typeScript中數(shù)組類型定義及應(yīng)用詳解

    相信大家應(yīng)該都知道ts只允許數(shù)組中包括一種數(shù)據(jù)類型的值,下面這篇文章主要給大家介紹了關(guān)于typeScript中數(shù)組類型定義及應(yīng)用的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2023-05-05
  • JavaScript中實(shí)現(xiàn)new的兩種方式引發(fā)的探究

    JavaScript中實(shí)現(xiàn)new的兩種方式引發(fā)的探究

    眾所周知JS中new的作用是通過(guò)構(gòu)造函數(shù)來(lái)創(chuàng)建一個(gè)實(shí)例對(duì)象,這篇文章主要給大家介紹了關(guān)于JavaScript中實(shí)現(xiàn)new的兩種方式引發(fā)的相關(guān)資料,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-05-05
  • JavaScript 判斷iPhone X Series機(jī)型的方法

    JavaScript 判斷iPhone X Series機(jī)型的方法

    這篇文章主要介紹了JavaScript 判斷iPhone X Series機(jī)型的方法,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2019-01-01
  • 提高網(wǎng)站信任度的技巧

    提高網(wǎng)站信任度的技巧

    網(wǎng)站信任度:一方面指瀏覽者對(duì)于站點(diǎn)的信任程度,另一方面指搜索引擎對(duì)于網(wǎng)站的信任值(TrustRank),網(wǎng)站信任度對(duì)于企業(yè)站點(diǎn)更為重要.在得到更高信任度的同時(shí),流量更容易轉(zhuǎn)化為實(shí)在的收入.
    2008-10-10
  • 基于uni-app開發(fā)刻度尺組件的實(shí)現(xiàn)示例

    基于uni-app開發(fā)刻度尺組件的實(shí)現(xiàn)示例

    本文主要介紹了基于uni-app開發(fā)刻度尺組件的實(shí)現(xiàn)示例,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-03-03
  • js如何獲取file控件的完整路徑具體實(shí)現(xiàn)代碼

    js如何獲取file控件的完整路徑具體實(shí)現(xiàn)代碼

    需要隱藏input file然后獲取它的值,但連jquery都無(wú)法獲取它的值,下面與大家分享下使用js的具體獲取方法,感興趣的朋友可以參考下哈
    2013-05-05
  • 給easyui的datebox控件添加清空按鈕的實(shí)現(xiàn)方法

    給easyui的datebox控件添加清空按鈕的實(shí)現(xiàn)方法

    下面小編就為大家?guī)?lái)一篇給easyui的datebox控件添加清空按鈕的實(shí)現(xiàn)方法。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2016-11-11

最新評(píng)論

大洼县| 武汉市| 英超| 铁岭县| 青海省| 永川市| 安化县| 泸西县| 浪卡子县| 滦平县| 长海县| 仁化县| 长治市| 汝州市| 大洼县| 汉阴县| 黄梅县| 新兴县| 云霄县| 晋中市| 新建县| 华坪县| 宜城市| 安国市| 正阳县| 金平| 乐安县| 黑水县| 海宁市| 承德市| 吉安市| 仁布县| 时尚| 潮州市| 东兰县| 阿拉尔市| 庆元县| 旌德县| 闽清县| 镇康县| 巴彦淖尔市|