日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > HTML >内容正文

HTML

浏览器判定

發布時間:2023/12/20 HTML 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 浏览器判定 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
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 瀏覽器的目的。

?

還有一種判定方面

<script?language="JavaScript">
????<!--
function?getOs()
{
????var?OsObject?=?"";
???if(navigator.userAgent.indexOf("MSIE")>0)?{
????????return?"MSIE";
???}
???if(isFirefox=navigator.userAgent.indexOf("Firefox")>0){
????????return?"Firefox";
???}
???if(isSafari=navigator.userAgent.indexOf("Safari")>0)?{
????????return?"Safari";
???}?
???if(isCamino=navigator.userAgent.indexOf("Camino")>0){
????????return?"Camino";
???}
???if(isMozilla=navigator.userAgent.indexOf("Gecko/")>0){
????????return?"Gecko";
???}
??
}
?alert("您的瀏覽器類型為:"+getOs());
????-->
</script>

?

總結

以上是生活随笔為你收集整理的浏览器判定的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。