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

javascript判斷chrome瀏覽器的方法

 更新時間:2014年03月26日 14:27:49   投稿:zxhpj  
這篇文章主要介紹了javascript判斷chrome瀏覽器的方法,通過userAgent判斷檢測一下userAgent返回的字符串里面是否包含“Chrome”,需要的朋友可以參考下

通過userAgent判斷檢測一下userAgent返回的字符串里面是否包含“Chrome”, 具體怎么檢測是通過indexOf方法進行的。

<script type="text/javascript">
  var isChrome = window.navigator.userAgent.indexOf("Chrome") !== -1;
  alert(isChrome);
  if (isChrome) {
    alert("是Chrome瀏覽器");
  } else {
    alert("不是Chrome瀏覽器");
  }
</script>

關(guān)于indexOf方法:

indexOf方法返回一個整數(shù)值,指出String對象內(nèi)子字符串的開始位置。即indexOf()括號內(nèi)所包含的字符在該字符串內(nèi)的位置,在第幾位就返回幾,從0開始記數(shù)。如果有重復(fù)的字符出現(xiàn),以第一個字符為準(zhǔn)。如果沒有找到子字符串,則返回 -1。

 JS通過內(nèi)核判斷各種瀏覽器|區(qū)分360與谷歌(親測可用)

function getBrowserInfo(){
    var ua = navigator.userAgent.toLocaleLowerCase();
    var browserType=null;
    if (ua.match(/msie/) != null || ua.match(/trident/) != null) {
      browserType = "IE";
      browserVersion = ua.match(/msie ([\d.]+)/) != null ? ua.match(/msie ([\d.]+)/)[1] : ua.match(/rv:([\d.]+)/)[1];
    } else if (ua.match(/firefox/) != null) {
      browserType = "火狐";
    }else if (ua.match(/ubrowser/) != null) {
      browserType = "UC";
    }else if (ua.match(/opera/) != null) {
      browserType = "歐朋";
    } else if (ua.match(/bidubrowser/) != null) {
      browserType = "百度";
    }else if (ua.match(/metasr/) != null) {
      browserType = "搜狗";
    }else if (ua.match(/tencenttraveler/) != null || ua.match(/qqbrowse/) != null) {
      browserType = "QQ";
    }else if (ua.match(/maxthon/) != null) {
      browserType = "遨游";
    }else if (ua.match(/chrome/) != null) {
      var is360 = _mime("type", "application/vnd.chromium.remoting-viewer");
      function _mime(option, value) {
        var mimeTypes = navigator.mimeTypes;
        for (var mt in mimeTypes) {
          if (mimeTypes[mt][option] == value) {
            return true;
          }
        }
        return false;
      }
      if(is360){
        browserType = '360';
      }else{
        $('html').css("zoom",".80");
      }
    }else if (ua.match(/safari/) != null) {
      browserType = "Safari";
    }
}

只有原生Chrome中存在一種MimeType“application/vnd.chromium.remoting-viewer”,由此可以判斷瀏覽器是加殼Chrome或是原生Chrome。
再如,只有IE內(nèi)核的瀏覽器存在ActiveXObject對象。由此可以判斷是否為IE瀏覽器

判斷瀏覽器類型,我們需要遵循以下原則:

1、采取命中特征原則,當(dāng)且僅當(dāng)完全符合區(qū)分瀏覽器的特征時我們才會采用此特征。例如單純通過UA中MSIE來檢測是否為IE瀏覽器是不可靠的。而通過判斷是否存在MimeType“application/vnd.chromium.remoting-viewer”來斷言原生Chrome在現(xiàn)階段來看是可行性,但也不保證永久有效。
2、對于主流瀏覽器來說一般不存在UserAgent關(guān)鍵字沖突,但對于許多加殼瀏覽器者就不一定了。再次提出某數(shù)字瀏覽器,userAgent干脆和IE一模一樣,但渲染模式等等不不知道動了什么手腳,與標(biāo)準(zhǔn)IE行為差異很大。通過userAgent來判斷瀏覽器時,優(yōu)先命中瀏覽器特征字。匹配則基本確定為該瀏覽器,但未匹配也并不代表不是此瀏覽器。請悉知。
3、優(yōu)先使用瀏覽器特性來區(qū)分瀏覽器,因為這個準(zhǔn)確性較高。其次再采用userAgent輔助判斷,從而達到最高的匹配度。
4、優(yōu)先檢測第三方加殼瀏覽器,目前并未有十分好的方案,只能枚舉大部分世面上存在并可以判斷的瀏覽器,其他未匹配任何規(guī)則的瀏覽器,為了兼容,請將規(guī)則落到四大瀏覽器之一。
5、判斷瀏覽器版本,僅僅是為了針對特定瀏覽器進行優(yōu)化,需要有特定的業(yè)務(wù)場景需要才要這么做?;蛘弋?dāng)某個瀏覽器出現(xiàn)兼容問題時,緊急添加針對瀏覽器的補丁代碼時才判斷。更加科學(xué)穩(wěn)妥的辦法是使用標(biāo)準(zhǔn)的JS函數(shù)和API,頁面元素和樣式設(shè)計遵循W3C標(biāo)準(zhǔn)。可能存在爭議的兼容性問題盡可能采用第三方框架如jQuery。這才是解決兼容性問題的根本。
下面附上最近整理規(guī)納判斷瀏覽器類型的代碼

相關(guān)文章

  • JavaScript this的原理以及指向詳解

    JavaScript this的原理以及指向詳解

    面向?qū)ο笳Z言中 this 表示當(dāng)前對象的一個引用。但在 JavaScript 中 this 不是固定不變的,它會隨著執(zhí)行環(huán)境的改變而改變,在方法中,this 表示該方法所屬的對象,如果單獨使用,this 表示全局對象
    2021-10-10
  • 微信小程序按鈕巧妙用法

    微信小程序按鈕巧妙用法

    這篇文章主要介紹了微信小程序按鈕巧妙用法,按鈕組件功能比?HTML?中的?button?按鈕豐富,通過?open-type?屬性可以調(diào)用微信提供的各種功能(客服、轉(zhuǎn)發(fā)、獲取用戶授權(quán)、獲取用戶信息等),需要的朋友可以參考下
    2022-12-12
  • ES6如何用一句代碼實現(xiàn)函數(shù)的柯里化

    ES6如何用一句代碼實現(xiàn)函數(shù)的柯里化

    這篇文章主要介紹了ES6如何用一句代碼實現(xiàn)函數(shù)的柯里化,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-01-01
  • TypeScript接口與泛型全面精講

    TypeScript接口與泛型全面精講

    接口是一系列抽象方法的聲明,是一些方法特征的集合,這些方法都應(yīng)該是抽象的,需要由具體的類去實現(xiàn),然后第三方就可以通過這組抽象方法調(diào)用,讓具體的類執(zhí)行具體的方法,泛型是靜態(tài)類型語言的基本特征,允許將類型作為參數(shù)傳遞給另一個類型、函數(shù)、或者其他結(jié)構(gòu)
    2022-10-10
  • js同源策略詳解

    js同源策略詳解

    這篇文章主要介紹了js同源策略,較為詳細的分析了javascript中同源策略的概念與相關(guān)應(yīng)用注意事項,需要的朋友可以參考下
    2015-05-05
  • js實現(xiàn)跨域訪問的三種方法

    js實現(xiàn)跨域訪問的三種方法

    這篇文章主要介紹了js實現(xiàn)跨域訪問的三種方法,包括基于iframe實現(xiàn)跨域、基于script標(biāo)簽實現(xiàn)跨域以及后臺代理方式 ,感興趣的小伙伴們可以參考一下
    2015-12-12
  • JavaScript實現(xiàn)跟隨鼠標(biāo)移動的盒子

    JavaScript實現(xiàn)跟隨鼠標(biāo)移動的盒子

    這篇文章主要為大家詳細介紹了JavaScript實現(xiàn)跟隨鼠標(biāo)移動的盒子,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-01-01
  • 詳解如何消除axios攔截中的if

    詳解如何消除axios攔截中的if

    在使用vue的開發(fā)中,我們會使用axios來做前后端通信,那這時候我們就需要對請求前后做攔截,下面這篇文章主要給大家介紹了關(guān)于如何消除axios攔截中if的相關(guān)資料,需要的朋友可以參考下
    2022-04-04
  • JavaScript數(shù)組合并的8種常見方法小結(jié)

    JavaScript數(shù)組合并的8種常見方法小結(jié)

    項目過程中經(jīng)常會遇到 JS 數(shù)組合并的情況,時常為這個糾結(jié),這里整理一下,下面這篇文章主要給大家介紹了關(guān)于JavaScript數(shù)組合并的8種常見方法,需要的朋友可以參考下
    2022-11-11
  • 連續(xù)操作HTMLElement對象圖文解決方法

    連續(xù)操作HTMLElement對象圖文解決方法

    Object.prototype.***不能用作在HTMLElement對象上,如本后面的抓圖所示。
    2008-03-03

最新評論

马边| 上杭县| 古蔺县| 高密市| 武义县| 瑞丽市| 壤塘县| 公安县| 盐源县| 芦溪县| 洪江市| 凤城市| 石林| 安龙县| 安顺市| 广丰县| 兴隆县| 水富县| 镇坪县| 连平县| 晋宁县| 闽侯县| 阿勒泰市| 偃师市| 彭水| 襄汾县| 哈密市| 介休市| 平乡县| 凌源市| 东兴市| 汕尾市| 靖远县| 临海市| 左权县| 五原县| 团风县| 洪湖市| 雷波县| 焦作市| 行唐县|