五月综合缴情婷婷六月,色94色欧美sute亚洲线路二,日韩制服国产精品一区,色噜噜一区二区三区,香港三级午夜理伦三级三

您現(xiàn)在的位置: 365建站網(wǎng) > 365文章 > js判斷識(shí)別各種瀏覽器及ie版本的代碼

js判斷識(shí)別各種瀏覽器及ie版本的代碼

文章來(lái)源:365jz.com     點(diǎn)擊數(shù):1212    更新時(shí)間:2018-05-31 13:31   參與評(píng)論

js判斷是否是ie瀏覽器且給出ie版本

 

之前懶得寫(xiě)判斷ie版本js,因?yàn)榫W(wǎng)上關(guān)于這方面的代碼太多了,所以從網(wǎng)上拷貝了一個(gè),放到項(xiàng)目上才發(fā)現(xiàn)由于時(shí)效性的問(wèn)題,代碼不生效。就自己寫(xiě)一個(gè)吧。

  1. 怎么去看瀏覽器的內(nèi)核等信息 ---- js的全局對(duì)象window子屬性navigator.userAgent,這個(gè)屬性是包含了瀏覽器信息的相關(guān)信息,包括我們需要的瀏覽器內(nèi)核

  2. navigator.userAgent這個(gè)值取出來(lái)是個(gè)字符串,可以通過(guò)string的 indexOf方法或者正則匹配來(lái)驗(yàn)證關(guān)鍵字符串

  3. ie11和edge的判斷方式有所不同,后面我會(huì)給出幾個(gè)圖

  4. 這個(gè)是ie11的userAgent

  5. 這個(gè)是edge的userAgent

  6. ie9的userAgent

  7. ie8的userAgent

  8. ie10的userAgent

     

 你一定發(fā)現(xiàn)了,ie11和edge的userAgent是和ie8,9,10差別蠻大的,那么對(duì)用的在寫(xiě)js時(shí)需要特別判斷,下面給出我寫(xiě)好的一段判斷是否是ie且給出ie版本號(hào)的js代碼段

 

 

        function IEVersion() {
            var userAgent = navigator.userAgent; //取得瀏覽器的userAgent字符串 
            var isIE = userAgent.indexOf("compatible") > -1 && userAgent.indexOf("MSIE") > -1; //判斷是否IE<11瀏覽器 
            var isEdge = userAgent.indexOf("Edge") > -1 && !isIE; //判斷是否IE的Edge瀏覽器 
            var isIE11 = userAgent.indexOf('Trident') > -1 && userAgent.indexOf("rv:11.0") > -1;
            if(isIE) {
                var reIE = new RegExp("MSIE (\\d+\\.\\d+);");
                reIE.test(userAgent);
                var fIEVersion = parseFloat(RegExp["$1"]);
                if(fIEVersion == 7) {
                    return 7;
                } else if(fIEVersion == 8) {
                    return 8;
                } else if(fIEVersion == 9) {
                    return 9;
                } else if(fIEVersion == 10) {
                    return 10;
                } else {
                    return 6;//IE版本<=7
                }  
            } else if(isEdge) {
                return 'edge';//edge
            } else if(isIE11) {
                return 11; //IE11 
            }else{
                return -1;//不是ie瀏覽器
            }
        }

 

 

通過(guò)調(diào)用 IEVersion()可以獲得返回值,值如下

值類型 值說(shuō)明
-1 Number  不是ie瀏覽器
6 Number ie版本<=6
7 Number ie7
8 Number ie8
9 Number ie9
10 Number ie10
11 Number ie11
'edge' String ie的edge瀏覽器

 

js判斷瀏覽器,包括Edge瀏覽器
/*
* 描述:判斷瀏覽器信息
* 編寫(xiě):LittleQiang_w
* 日期:2016.1.5
* 版本:V1.1
*/

//判斷當(dāng)前瀏覽類型
function BrowserType()
{
var userAgent = navigator.userAgent; //取得瀏覽器的userAgent字符串
var isOpera = userAgent.indexOf("Opera") > -1; //判斷是否Opera瀏覽器
var isIE = userAgent.indexOf("compatible") > -1 && userAgent.indexOf("MSIE") > -1 && !isOpera; //判斷是否IE瀏覽器
var isEdge = userAgent.indexOf("Edge") > -1; //判斷是否IE的Edge瀏覽器
var isFF = userAgent.indexOf("Firefox") > -1; //判斷是否Firefox瀏覽器
var isSafari = userAgent.indexOf("Safari") > -1 && userAgent.indexOf("Chrome") == -1; //判斷是否Safari瀏覽器
var isChrome = userAgent.indexOf("Chrome") > -1 && userAgent.indexOf("Safari") > -1; //判斷Chrome瀏覽器

if (isIE)
{
var reIE = new RegExp("MSIE (\\d+\\.\\d+);");
reIE.test(userAgent);
var fIEVersion = parseFloat(RegExp["$1"]);
if(fIEVersion == 7)
{ return "IE7";}
else if(fIEVersion == 8)
{ return "IE8";}
else if(fIEVersion == 9)
{ return "IE9";}
else if(fIEVersion == 10)
{ return "IE10";}
else if(fIEVersion == 11)
{ return "IE11";}
else
{ return "0"}//IE版本過(guò)低
}//isIE end

if (isFF) { return "FF";}
if (isOpera) { return "Opera";}
if (isSafari) { return "Safari";}
if (isChrome) { return "Chrome";}
if (isEdge) { return "Edge";}
}//myBrowser() end

//判斷是否是IE瀏覽器
function isIE()
{
var userAgent = navigator.userAgent; //取得瀏覽器的userAgent字符串
var isIE = userAgent.indexOf("compatible") > -1 && userAgent.indexOf("MSIE") > -1 && !isOpera; //判斷是否IE瀏覽器
if(isIE)
{
return "1";
}
else
{
return "-1";
}
}


//判斷是否是IE瀏覽器,包括Edge瀏覽器
function IEVersion()
{
var userAgent = navigator.userAgent; //取得瀏覽器的userAgent字符串
var isIE = userAgent.indexOf("compatible") > -1 && userAgent.indexOf("MSIE") > -1 && !isOpera; //判斷是否IE瀏覽器
var isEdge = userAgent.indexOf("Windows NT 6.1; Trident/7.0;") > -1 && !isIE; //判斷是否IE的Edge瀏覽器
if(isIE)
{
var reIE = new RegExp("MSIE (\\d+\\.\\d+);");
reIE.test(userAgent);
var fIEVersion = parseFloat(RegExp["$1"]);
if(fIEVersion == 7)
{ return "IE7";}
else if(fIEVersion == 8)
{ return "IE8";}
else if(fIEVersion == 9)
{ return "IE9";}
else if(fIEVersion == 10)
{ return "IE10";}
else if(fIEVersion == 11)
{ return "IE11";}
else
{ return "0"}//IE版本過(guò)低
}
else if(isEdge)
{
return "Edge";
}
else
{
return "-1";//非IE
}
}
 

識(shí)別各種瀏覽器的實(shí)現(xiàn)原理是根據(jù)navigator.userAgent返回值識(shí)別:

實(shí)現(xiàn):

 
unction validBrowser(){ 
var u_agent = navigator.userAgent; 
var browser_name='Failed to identify the browser'; 
if(u_agent.indexOf('Firefox')>-1){ 
browser_name='Firefox'; 
}else if(u_agent.indexOf('Chrome')>-1){ 
browser_name='Chrome'; 
}else if(u_agent.indexOf('Trident')>-1&&u_agent.indexOf('rv:11')>-1){ 
browser_name='IE11'; 
}else if(u_agent.indexOf('MSIE')>-1&&u_agent.indexOf('Trident')>-1){ 
browser_name='IE(8-10)'; 
}else if(u_agent.indexOf('MSIE')>-1){ 
browser_name='IE(6-7)'; 
}else if(u_agent.indexOf('Opera')>-1){ 
browser_name='Opera'; 
}else{ 
browser_name+=',info:'+u_agent; 
} 
document.write('browser_name:'+browser_name+'<br>'); 
document.write('u_agent:'+u_agent+'<br>'); 
} 
 

附幾種瀏覽的user_agent..像360的兼容模式用的是IE、極速模式用的是chrom的內(nèi)核 

 

 

比如判斷360兩種模式用下面代碼:

if (window.navigator.userAgent.indexOf('compatible') != -1) {
alert('360兼容模式');
}
if(window.navigator.userAgent.indexOf('AppleWebKit') != -1) {
alert('360極速模式');
}


獲取瀏覽器信息需要使用navigator.userAgent 對(duì)象 根據(jù)獲取到的內(nèi)容判斷瀏覽器信息

親身測(cè)試 

navigator.userAgent

IE 11  Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; .NET4.0C; .NET4.0E;                 InfoPath.2; rv:11.0) like Gecko

         IE11瀏覽器 已經(jīng)不能用msic 來(lái)判斷是否是IE11了  所以需要換另外一種方式    

        

  if (!!window.ActiveXObject || "ActiveXObject" in window)
                alert("IE")

            else
                alert("not  IE")

        }

 Chrome   Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/57.0.2950.5 Safari/537.36 

               Chrome瀏覽器中不知道 為什么會(huì)包含 Chrome和Safari 信息  ,我本人電腦上裝了這兩種瀏覽器

Safari     Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/534.57.2 (KHTML, like Gecko) Version/5.1.7 Safari/534.57.2

FireFox   Mozilla/5.0 (Windows NT 6.1; WOW64; rv:51.0) Gecko/20100101 Firefox/51.0

Opera    Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36 OPR/43.0.2442.1144 

              但是有些博客上面說(shuō)明是需要判斷 “Opera”  ,而且不知道為什么會(huì)包含Chrome和Safari的信息在里面

QQ瀏覽器  Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2785.104 Safari/537.36 Core/1.53.2372.400                        QQBrowser/9.5.10551.400 

              QQ瀏覽器也包含Chrome和Safrari的信息在理里面。。

              其他的瀏覽器我也沒(méi)有深入的嘗試過(guò)。

 順序最好不要改

function myBrowser(){
    var userAgent = navigator.userAgent; //取得瀏覽器的userAgent字符串
   
    if (userAgent.indexOf("OPR") > -1||userAgent.indexOf("Opera") > -1) {
        return "Opera"
    }//判斷是否Opera瀏覽器
    else if (userAgent.indexOf("Firefox") > -1) {
        return "FF";
    } //判斷是否Firefox瀏覽器
   else   if (userAgent.indexOf("Chrome") > -1){
  return "Chrome";
 }
  else   if (userAgent.indexOf("Safari") > -1) {
        return "Safari";
    } //判斷是否Safari瀏覽器
 else{
      //其他
  }
}

 Navigator 對(duì)象包含有關(guān)瀏覽器的信息。js就是通過(guò)Navigator的屬性獲取客戶端瀏覽器信息
Navigator 對(duì)象屬性:

屬性
描述

appCodeName 返回瀏覽器的代碼名。 
appMinorVersion 返回瀏覽器的次級(jí)版本。 
appName 返回瀏覽器的名稱。 
appVersion 返回瀏覽器的平臺(tái)和版本信息。 
browserLanguage 返回當(dāng)前瀏覽器的語(yǔ)言。 
cookieEnabled 返回指明瀏覽器中是否啟用 cookie 的布爾值。 
cpuClass 返回瀏覽器系統(tǒng)的 CPU 等級(jí)。 
onLine 返回指明系統(tǒng)是否處于脫機(jī)模式的布爾值。 
platform 返回運(yùn)行瀏覽器的操作系統(tǒng)平臺(tái)。 
systemLanguage 返回 OS 使用的默認(rèn)語(yǔ)言。 
userAgent 返回由客戶機(jī)發(fā)送服務(wù)器的 user-agent 頭部的值。 
userLanguage 返回 OS 的自然語(yǔ)言設(shè)置。

好像除了IE瀏覽器 其他瀏覽器有很多屬性 都是undefined

這個(gè)是IE 11 的 

這個(gè)是Chrome的

而且除了IE 11之前的版本 其他的瀏覽器的名稱都是  Netscape

如對(duì)本文有疑問(wèn),請(qǐng)?zhí)峤坏浇涣髡搲?,廣大熱心網(wǎng)友會(huì)為你解答??! 點(diǎn)擊進(jìn)入論壇

發(fā)表評(píng)論 (1212人查看,0條評(píng)論)
請(qǐng)自覺(jué)遵守互聯(lián)網(wǎng)相關(guān)的政策法規(guī),嚴(yán)禁發(fā)布色情、暴力、反動(dòng)的言論。
昵稱:
最新評(píng)論
------分隔線----------------------------
大家感興趣的內(nèi)容
最近更新的內(nèi)容

其它欄目

· 建站教程
· 365學(xué)習(xí)

業(yè)務(wù)咨詢

· 技術(shù)支持
· 服務(wù)時(shí)間:9:00-18:00
365建站網(wǎng)二維碼

Powered by 365建站網(wǎng) RSS地圖 HTML地圖

copyright © 2013-2024 版權(quán)所有 鄂ICP備17013400號(hào)