JavaScript判斷瀏覽器類型

本文基本抄自簡(jiǎn)書原文《JavaScript判斷瀏覽器類型

以為的:

var explorer = window.navigator.userAgent;
//判斷是否為IE瀏覽器
if (explorer.indexOf("MSIE") >= 0) {
  return 'ie';
}
//判斷是否為Firefox瀏覽器
else if (explorer.indexOf("Firefox") >= 0) {
  return 'Firefox';
}
//判斷是否為Chrome瀏覽器
else if (explorer.indexOf("Chrome") >= 0) {
  return 'Chrome';
}
//判斷是否為Opera瀏覽器
else if (explorer.indexOf("Opera") >= 0) {
  return 'Opera';
}
//判斷是否為Safari瀏覽器
else if (explorer.indexOf("Safari") >= 0) {
  return 'Safari';
}

解釋

其實(shí)使用瀏覽器的userAgent來(lái)判斷是不準(zhǔn)的,用戶可以修改:

  • Firefox 中,在 about:config 頁(yè)面添加并修改。

    general.useragent.override選項(xiàng)的值來(lái)覆蓋默認(rèn)的用戶代理字符串。一些Firefox擴(kuò)展也可以用其他方式修改這個(gè)值,但它們通常只會(huì)修改發(fā)送到服務(wù)器的User-Agent請(qǐng)求頭的值,而不會(huì)影響 JavaScript 代碼中獲取的 window.navigator.userAgent 屬性的值。
  • Opera 6+ 中通過(guò)菜單選擇不同的用戶代理字符串。

  • Microsoft Internet Explorer 使用注冊(cè)表來(lái)配置自己的用戶代理字符串。

  • Safari 和 iCab 可修改其用戶代理字符串。

通過(guò)各個(gè)瀏覽器的特征來(lái)判斷:

  • IE

    只有IE支持創(chuàng)建ActiveX控件,它有一個(gè)其他瀏覽器沒(méi)有的東西,就是ActiveXObject函數(shù)。只要判斷window對(duì)象存在ActiveXObject函數(shù),就可以明確判斷出當(dāng)前瀏覽器是IE
  • Safari

    Safari瀏覽器中有一個(gè)其他瀏覽器沒(méi)有的openDatabase函數(shù),可做為判斷Safari的標(biāo)志
  • Chrome

    Chrome有一個(gè)MessageEvent函數(shù),但Firefox也有。不過(guò),好在Chrome并沒(méi)有Firefox的getBoxObjectFor函數(shù),根據(jù)這個(gè)條件還是可以準(zhǔn)確判斷出Chrome瀏覽器的
  • Firefox

    Firefox中的DOM元素都有一個(gè)getBoxObjectFor函數(shù),用來(lái)獲取該DOM元素的位置和大?。↖E對(duì)應(yīng)的中是getBoundingClientRect函數(shù))。這是Firefox獨(dú)有的,判斷它即可知道是當(dāng)前瀏覽器是Firefox
  • Opera

    Opera提供了專門的瀏覽器標(biāo)志,就是window.opera屬性

正解:

if (window.ActiveXObject)
  return "IE";
else if (document.getBoxObjectFor)
  return "Firefox";
else if (window.MessageEvent && !document.getBoxObjectFor)
  return "Chrome";
else if (window.opera)
  return "Opera";
else if (window.openDatabase)
  return "Safari";
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 不同的瀏覽器有不同的屬性,你知道怎么來(lái)判斷瀏覽器的類型嗎? 使用瀏覽器的userAgent來(lái)判斷 實(shí)際上,通過(guò)檢測(cè)...
    每木傳情閱讀 14,345評(píng)論 2 30
  • 現(xiàn)如今的瀏覽器眾多,版本繁雜, 為了適應(yīng)版本需要確定瀏覽器的類型,尤其是360瀏覽器又分為安全瀏覽器和急速瀏覽器,...
    wwmin_閱讀 2,375評(píng)論 1 50
  • 第1章 認(rèn)識(shí)JS JavaScript能做什么?1.增強(qiáng)頁(yè)面動(dòng)態(tài)效果(如:下拉菜單、圖片輪播、信息滾動(dòng)等)2.實(shí)現(xiàn)...
    mo默22閱讀 1,511評(píng)論 0 5
  • 瀏覽器發(fā)展史 現(xiàn)在瀏覽器已經(jīng)成為網(wǎng)上生活的重要家園和工具。而從1991年,Web之父Tim Berners-Lee...
    波段頂?shù)?/span>閱讀 18,027評(píng)論 6 86
  • 【點(diǎn)石成金】20170706 學(xué)習(xí)力6 Day52 語(yǔ)言啟蒙復(fù)習(xí)學(xué)字學(xué)詞,新加字詞訓(xùn)練。喜歡小鴨的故事,...
    葉子ya豆子閱讀 249評(píng)論 0 0

友情鏈接更多精彩內(nèi)容