導航:首頁 > 編程語言 > javascript判斷瀏覽器類型

javascript判斷瀏覽器類型

發布時間:2025-03-06 23:00:38

javascript中 if(!-[1,])是什麼意思呀

這是一個判斷IE瀏覽器版本的精簡腳本

IE瀏覽器不管是什麼版本,總是跟Web標准有些不太兼容。對於代碼工作者來說,自然是苦不堪言,為了考慮IE的兼容問題,不管是寫 CSS 還是 JS,往往都要對 IE 特別對待,這就少不了做些判斷。本文不討論如何區分 IE 的樣式,僅是 JS 判定 IE 瀏覽器。
這個目前世界上最短的 Javascript 判定 IE 瀏覽器的方法來自俄羅斯!它已經在各版本的 IE 以及目前其他流行的瀏覽器上經過測試,基於 IE 的 Bug,微軟雖然已經意識到,但是從來沒有糾正過。
<script type=』text/javascript』>
var ie = !-[1,];
alert(ie);
</script>
以上代碼運行結果:IE 下返回true,其他標准瀏覽器返回false。!-[1,],僅僅只有 6 bytes!
不過如果反過來判斷,標准瀏覽器返回 true 而 IE 返回 false的話,則可以再縮短一個byte。
<script type=』text/javascript』>
notIe = -[1,];
if(-[1,]){
// 標准瀏覽器代碼
}else{
// IE Only的代碼
}
</script>
看完了這些,你們是不是很好奇這些是怎麼運行的?請繼續看下文。
這個 Bug 產生的原因是 IE 會添加一個空數組元素到數組元素的總數里。
[1,]. Length標准瀏覽器會返回 1 (基於標準的 ECMAscript ,在數組最後的逗號」,」會被忽略,這是為了方便在一列里顯示以及自動生成等),但是 IE 會返回 2。當你列印這個數組的時候 IE 將會返回 「1, 「,也就是兩個元素,而其他標准瀏覽器將會返回 「1″。
這很容易驗證,比如在 IE 和 FF中運行以下代碼:
<script type=』text/javascript』>
alert([,]==』,』);
//這是8個字元判定IE
</script>
[1,]實際上瀏覽器的操作是toString()轉換成字元串的操作,-[1,]是將字元串強制轉換為數字。而 IE 將會返回 NaN,但是遺憾的是 NaN 並不是一個數字,因為[1,]轉換成字元串後的」1,」裡面帶有逗號。而其他標准瀏覽器會返回 -1,這是一個非 0 的數字。
你知道,NaN 轉換成 Boolean 型將返回 false,所以-[1,]在 IE 下將返回 false。而任何非 0 的數字轉換成 Boolean 型(例如-1),在 標准瀏覽器下都將返回 true。所以我們得到了一個判定結果,!-[1,]在 IE 下返回true,而在其他標准瀏覽器下返回 false。也就達到了區分判定 IE 瀏覽器的目的。
當然,如前文所說,這個 Bug 其實微軟很早就已經知道,但是卻一直沒有去修復它,所以在未來的 > IE8 的 IE 瀏覽器也就不確定是否依舊可以,不過基本上這么多代的 IE 都沒有修復,未來的 IE 也不太會去修復的樣子。
以下是其他的一些區分判定 IE 瀏覽器的代碼,也可以參考下:
<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>

閱讀全文

與javascript判斷瀏覽器類型相關的資料

熱點內容
wps如何清除pdf文件上的文字水印 瀏覽:695
如何用手機免費編程 瀏覽:865
網路安全挑戰賽 瀏覽:369
微信登陸網路異常是怎麼回事 瀏覽:383
蘋果提示輸入舊id密碼 瀏覽:2
前端線下教學視頻教程 瀏覽:396
mac批量刪除同一格式文件 瀏覽:994
榮耀v6如何清除所有數據 瀏覽:955
文本文件內容搜索工具 瀏覽:519
網易定向免流量app有哪些 瀏覽:686
怎樣查看手機收藏文件 瀏覽:816
cad無法保存到圖形dxf文件怎麼辦 瀏覽:675
軟體釋放文件錯誤 瀏覽:125
什麼是微信app離線信息 瀏覽:746
使用其他文件類 瀏覽:676
word合並邊框 瀏覽:5
如何在數據有效性選項里切換表單 瀏覽:699
中國聯通繳費app叫什麼 瀏覽:266
電腦怎麼加速網站視頻 瀏覽:848
命令行設置用戶密碼 瀏覽:997

友情鏈接