1. 程式人生 > >[樂意黎原創] JS根據useAgent來判斷edge, ie, firefox, chrome, opera, safari 等瀏覽器的型別及版本

[樂意黎原創] JS根據useAgent來判斷edge, ie, firefox, chrome, opera, safari 等瀏覽器的型別及版本

JS根據瀏覽器的useAgent來判斷瀏覽器的型別。

userAgent 屬性是一個只讀的字串,聲明瞭瀏覽器用於 HTTP 請求的使用者代理頭的值。

javascript語法:navigator.userAgent

PHP語法:$_SERVER['HTTP_USER_AGENT']

ASP語法:Request.ServerVariables("HTTP_USER_AGENT")

ASP.NET語法:HttpContext.Current.Request.UserAgent

JSP語法:request.getHeader("User-Agent")

-------------------------------------------------------
Chrome: (version: 50.0.2661.102 m)

  jsp:   userAgent :Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko)Chrome/50.0.2661.102 Safari/537.36

  js:   userAgent :  Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.102 Safari/537.36

-------------------------------------------------------

Firefox: (version: 47.0)

  jsp: userAgent : Mozilla/5.0 (Windows NT 6.1; WOW64; rv:47.0) Gecko/20100101Firefox/47.0

  js:   userAgent : Mozilla/5.0 (Windows NT 6.1; WOW64; rv:47.0) Gecko/20100101Firefox/47.0

-------------------------------------------------------

Safari: (version: 5.1.7)

  jsp: userAgent : Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/534.57.2 (KHTML, like Gecko)

Version/5.1.7Safari/534.57.2

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

-------------------------------------------------------

IE 8:  (version: 8.0.7601.17514, update versions: 0)

  jsp:  userAgent : Mozilla/4.0 (compatible;MSIE 8.0; Windows NT 6.1; WOW64; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0)

  js:   userAgent : Mozilla/4.0 (compatible;MSIE 8.0; Windows NT 6.1; WOW64; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0)

-------------------------------------------------------

IE 11:  (version: 11.0.9600.18321 update Versions: 11.0.31)

  jsp: userAgent : Mozilla/5.0 (Windows NT 6.3; WOW64;Trident/7.0; rv:11.0) like Gecko

  js:   userAgent : Mozilla/5.0 (Windows NT 6.3; WOW64;Trident/7.0; .NET4.0E; .NET4.0C; .NET CLR 3.5.30729; .NET CLR 2.0.50727; .NET CLR 3.0.30729; InfoPath.3; rv:11.0) like Gecko

-------------------------------------------------------

Windows Edge:  (version: 25.10580.0.0)

  jsp: userAgent : Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2486.0 Safari/537.36 Edge/13.10586

  js:   userAgent : Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2486.0 Safari/537.36 Edge/13.10586

-------------------------------------------------------


[樂意黎 ]

接下來,如何判斷瀏覽器的型別呢 ?

IE 瀏覽器 :

TokenDescription
EdgeWindows Edge
Trident/7.0IE11
Trident/6.0Internet Explorer 10
Trident/5.0Internet Explorer 9
Trident/4.0Internet Explorer 8

JS 程式碼: 
//返回瀏覽器的型別: "ie", "firefox", "chrome", "opera", "safari", "unknow"

// author: aerchi
// site:www.aerchi.com
// blog: http://blog.csdn.net/aerchi/article/details/51697592
// email: [email protected]
// date: 2016-06-17
// update: 2016-08-11 00:56:00

// call like: getBrowser(1)
// return like "chrome/50.0.2661.102"
// call like: getBrowser()
// return like "chrome"
function getBrowser(getVersion)
{
    //注意關鍵字大小寫
    var ua_str = navigator.userAgent.toLowerCase(), ie_Tridents, trident, match_str, ie_aer_rv, browser_chi_Type;

    console.log("article url: http://blog.csdn.net/aerchi/article/details/51697592");

    //判斷IE 瀏覽器, 
    //blog: http://blog.csdn.net/aerchi/article/details/51697592
    if("ActiveXObject" in self){
        // ie_aer_rv:  指示IE 的版本.
        // It can be affected by the current document mode of IE.
        ie_aer_rv= (match_str = ua_str.match(/msie ([\d.]+)/)) ?match_str[1] :
              (match_str = ua_str.match(/rv:([\d.]+)/)) ?match_str[1] : 0;

        // ie: Indicate the really version of current IE browser.
        ie_Tridents = {"trident/7.0": 11, "trident/6.0": 10, "trident/5.0": 9, "trident/4.0": 8};
        //匹配 ie8, ie11, edge
        trident = (match_str = ua_str.match(/(trident\/[\d.]+|edge\/[\d.]+)/)) ?match_str[1] : undefined;
        browser_chi_Type = (ie_Tridents[trident] || ie_aer_rv) > 0 ? "ie" : undefined;
    }else{
        //判斷 windows edge 瀏覽器
        // match_str[1]: 返回瀏覽器及版本號,如: "edge/13.10586"
        // match_str[1]: 返回版本號,如: "edge" 

        //若要返回 "edge" 請把下行的 "ie" 換成 "edge"。 注意引號及冒號是英文狀態下輸入的
        browser_chi_Type = (match_str = ua_str.match(/edge\/([\d.]+)/)) ? "ie" :
                    //判斷firefox 瀏覽器
                      (match_str = ua_str.match(/firefox\/([\d.]+)/)) ? "firefox" : 
                    //判斷chrome 瀏覽器
                      (match_str = ua_str.match(/chrome\/([\d.]+)/)) ? "chrome" : 
                    //判斷opera 瀏覽器
                      (match_str = ua_str.match(/opera.([\d.]+)/)) ? "opera" : 
                    //判斷safari 瀏覽器
                      (match_str = ua_str.match(/version\/([\d.]+).*safari/)) ? "safari" : undefined;
    }


    console.log("author: aerchi, blog: http://blog.csdn.net/aerchi");    

    //返回瀏覽器型別和版本號
    var verNum, verStr;
    verNum = trident && ie_Tridents[trident] ? ie_Tridents[trident] : match_str[1];

    verStr = (getVersion != undefined) ? browser_chi_Type+"/"+verNum : browser_chi_Type;
    return verStr;
 }

-----------

相關推薦

[樂意原創] JS根據useAgent判斷edge, ie, firefox, chrome, opera, safari 瀏覽器型別版本

JS根據瀏覽器的useAgent來判斷瀏覽器的型別。userAgent 屬性是一個只讀的字串,聲明瞭瀏覽器用於 HTTP 請求的使用者代理頭的值。javascript語法:navigator.userAgentPHP語法:$_SERVER['HTTP_USER_AGENT']

[樂意原創]JS裡的for…in和for…of的用法與區別

for...in 迴圈for...in 語句用於遍歷陣列或者物件的屬性(對陣列或者物件的屬性進行迴圈操作)。for...in 語句用於對陣列或者物件的屬性進行迴圈操作。for ... in 迴圈中的程式碼每執行一次,就會對陣列的元素或者物件的屬性進行一次操作。for...in

一段判斷多種瀏覽器型別版本號的指令碼程式碼

摘自 jsframework 框架: window["MzBrowser"]={};(function(){  if(MzBrowser.platform) return;  var ua = window.navigator.userAgent;  MzBrowser.pl

判斷瀏覽器型別版本

navigator.appNameif("Netscape" == navigator.appName)else if("Microsoft Internet Explorer"== navigator.appName)

轉載--JS根據瀏覽器useAgent判斷瀏覽器的類型

match mod 瀏覽器 infopath activex navigator fine ava tolower JS根據瀏覽器的useAgent來判斷瀏覽器的類型 userAgent 屬性是一個只讀的字符串,聲明了瀏覽器用於 HTTP 請求的用戶代理頭的值。 javas

JS根據userAgent值判斷瀏覽器型別版本

JavaScript是前端開發的主要語言,我們可以通過編寫JavaScript程式來判斷瀏覽器的型別及版本。JavaScript判斷瀏覽器型別一般有兩種辦法,一種是根據各種瀏覽器獨有的屬性來分辨,另 一種是通過分析瀏覽器的userAgent屬性來判斷的。本文對瀏覽器各自的userAgent特點做一分析,並

[樂意原創] 怎樣計算多少英寸的顯示器或電視機的實際長度和寬度

方便 ack 速算 article http 由於 ont aer lan 以16:9 的顯示器來計算. 一寸=2.54CM. 由於長與寬的比例是 16:9 , 而所說的 XX英寸顯示器是以斜對角線來說的. 為了方便轉換, 以二十英寸來計算.

js根據銀行卡號判斷屬於哪個銀行,並返回銀行縮寫銀行卡型別https://www.cnblogs.com/zhoubingyan/p/8334981.html

在做繫結銀行卡,輸入銀行卡的時候,產品有這麼一個需求,需要使用者輸入銀行卡號的時候,顯示對應的銀行卡名稱及簡稱。於是苦苦尋覓,終於找到了支付寶的開放API,銀行卡校驗介面 https://ccdcapi.alipay.com/validateAndCacheCardInfo.json?ca

[樂意原創]Nginx裡帶引數的rewrite詳解

1. 如下所示,帶 www.daza.ren/view-detail-weixin-9999.html 和 www.daza.ren/view-detail-weixin-9999.html?65 在apache 下的寫法。 1).  www.daza.ren/vi

JS—使用indexOf()判斷字串中是否包含某個值

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>js判斷陣列中是否包含一個數字</title> <scri

[樂意原創]Centos主機動態安裝PHP的bcmath,Libmcrypt,mhash,mcrypt擴充套件模組方法

如下,Centos裡啟動 php-fpm 時,控制檯總在拋若干警告。 [[email protected]] #service php-fpm start Starting php-fpm daemon is success[28-Nov-2018 17:45:40] NOTIC

[樂意原創] Centos下目錄許可權和使用者名稱使用者組操作命令詳解

1. Linux/Centos 許可權命令常識: Linux作業系統是多使用者多工作業系統,包括使用者賬戶和組賬戶兩種: 細分使用者賬戶(普通使用者賬戶,超級使用者賬戶)除了使用者賬戶以為還有組賬戶所謂組賬戶就是使用者賬戶的集合,centos組中有兩種型別,私有組和標準組:

[樂意原創]配置Putty不再自動掉線

一:設定伺服器 1、修改伺服器中/etc/ssh/sshd.config 檔案,將LoginGraceTime的值設為0,TCPKeepAlive 設為yes 2、service sshd restart 重啟sshd服務。 二:設定PuTTY左側Connectio

[樂意原創]阿里雲ECS雲伺服器未新增安全組規則設定導致通過公網IP地址不能訪問

前幾天從阿里雲購買了一臺ECS雲服務器,系統是CentOS7.2,配好了Apache,也關閉了防火牆,但是在瀏覽器通過IP地址不能訪問。 試了N遍,還原初始系統,重灌,到處尋問,還是無法解決和訪問,好

[樂意原創] php 頁面提示 Fatal error: Call to undefined function curl_init()

呼叫到 curl_init()的php頁面提示: Fatal error: Call to undefined function curl_init() in E:\PHPCMS\Cms\www.a

[前端] 根據裝置判斷url跳轉

var browser = { wapUrl: 'http://m.baidu.com', versions:function(){ var u = navigator.userAgent, app = navigator.appVersion

[樂意原創]Centos 7裡apache(httpd)自啟動

最近,Aerchi在折騰 ECS伺服器 (Centos 7),每次重啟後都要手動開啟apache服務,好繁瑣。仔細研究了下:Apache 的服務第一、啟動、終止、重啟systemctl start httpd.service #啟動systemctl stop httpd.s

[樂意原創] 自動修改資料夾名的bat程式 批量刪除資料夾名的前10位字元(如“1234456789-資料夾”改為“資料夾”

這個是刪後面 @echo off setlocal enabledelayedexpansion set "wxyz=%*" for %%a in (!wxyz!) do ( set wy=%%~a set xz=%%~na set xz=!xz:~0,-7! if "!x

利用js,css判斷瀏覽器執行不同css

介紹   毫無疑問,任何一個試圖使用 CSS 的網頁設計師和開發人員都會發現不同的瀏覽器要求不同的樣式宣告。這些煩惱歸咎於各瀏覽器及其各版本不同程度的 CSS 執行的完整性。條件 CSS 是這個問題的一個解決方案,採用的是 Internet Explorer 的條件註釋語法

[樂意原創] 谷歌chorme瀏覽器開發版假死解決辦法

       不知從什麼時候起,我筆記本里的CHROME 經常無響應,假死。        表現症狀:頁面有時會無反應,卡頓很長時間。 在網上查閱了很久找到了很多方法什麼flash外掛、GPU合成都