[转]JS根据useAgent来判断edge, ie, firefox, chrome, opera, safari 等浏览器的类型及版本

简介: js根据浏览器的useAgent来判断浏览器的类型 userAgent 属性是一个只读的字符串,声明了浏览器用于 HTTP 请求的用户代理头的值。 JavaScript语法:navigator.userAgent PHP语法:$_SERVER['HTTP_USER_AGENT'] ASP语法:Request.

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)

  js:   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 浏览器 :

 

Token Description
Edge Windows Edge
Trident/7.0 IE11
Trident/6.0 Internet Explorer 10
Trident/5.0 Internet Explorer 9
Trident/4.0 Internet 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: aerchi@gmail.com

// 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;
//判断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.]+)/)) ? "edge" :
                    //判断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;
 }

 

 

乐意黎原创, 严禁采集或用于个人网站。
转载请注明作者及原文地址

本文地址:  http://blog.csdn.net/aerchi/article/details/51697592

 

相关文章
|
1月前
|
机器学习/深度学习 人工智能 前端开发
【人工智能】利用TensorFlow.js在浏览器中实现一个基本的情感分析系统
使用TensorFlow.js在浏览器中进行情感分析是一个非常实用的应用场景。TensorFlow.js 是一个用于在JavaScript环境中训练和部署机器学习模型的库,使得开发者能够在客户端直接运行复杂的机器学习任务。对于情感分析,我们可以使用预先训练好的模型来识别文本中的积极、消极或中性情感。
56 4
【人工智能】利用TensorFlow.js在浏览器中实现一个基本的情感分析系统
|
18天前
|
Web App开发 缓存 安全
解决Edge浏览器提示“此网站已被人举报不安全”
【9月更文挑战第1天】当 Edge 浏览器提示“此网站被举报为不安全”时,可尝试:关闭 Microsoft Defender SmartScreen;检查网站安全性;清除缓存和 Cookie;更新 Edge 至最新版;或使用其他浏览器。若问题依旧,联系网站管理员和技术支持。同时,避免在不可信网站输入敏感信息,保护网络安全与隐私。
|
1月前
|
数据采集 Web App开发 测试技术
使用Selenium调试Edge浏览器的常见问题与解决方案
在互联网数据采集领域,Selenium常用于自动化网页爬取。针对使用Edge浏览器时遇到的启动远程调试失败、访问受限及代理IP设置等问题,本文提供了解决方案。通过特定命令启动Edge的远程调试模式,并利用Python脚本配合Selenium库,可实现代理IP、User-Agent的设定及Cookie管理等高级功能,有效提升爬虫稳定性和隐蔽性。遵循步骤配置后,即可顺畅执行自动化测试任务。
187 1
使用Selenium调试Edge浏览器的常见问题与解决方案
|
1月前
|
存储 缓存 安全
解决Edge浏览器提示“此网站已被人举报不安全”
【8月更文挑战第19天】如果Edge浏览器提示“此网站已被人举报不安全”,首先确认网站可信度及安全证书有效性,避免访问可疑网站。检查浏览器是否需要更新,并确保自动更新功能已开启。可暂时关闭Microsoft Defender SmartScreen(不建议长期关闭),清除缓存和Cookies,或检查第三方安全软件设置。若问题持续,考虑重置Edge浏览器设置,保留重要数据。如仍无法解决,联系网站管理员或微软支持。
138 7
|
25天前
|
编解码 JavaScript 前端开发
JS逆向浏览器脱环境专题:事件学习和编写、DOM和BOM结构、指纹验证排查、代理自吐环境通杀环境检测、脱环境框架、脱环境插件解决
JS逆向浏览器脱环境专题:事件学习和编写、DOM和BOM结构、指纹验证排查、代理自吐环境通杀环境检测、脱环境框架、脱环境插件解决
44 1
|
1月前
Edge——如何打开IE浏览器进行访问
Edge——如何打开IE浏览器进行访问
43 4
|
1月前
|
自然语言处理 资源调度 JavaScript
JS 逆向基础篇:JS作用域和浏览器对象属性补环境
JS 逆向基础篇:JS作用域和浏览器对象属性补环境
57 1
|
1月前
|
JavaScript
VUE——如何兼容IE9|IE10|IE11浏览器
VUE——如何兼容IE9|IE10|IE11浏览器
35 0
VUE——如何兼容IE9|IE10|IE11浏览器
|
26天前
|
Web App开发 编解码 监控
【Azure 媒体服务】Azure Media Player 在Edge浏览器中不能播放视频问题的分析与解决
【Azure 媒体服务】Azure Media Player 在Edge浏览器中不能播放视频问题的分析与解决
|
2月前
|
安全 网络安全
用IE浏览器访问网站提示证书错误
当你在Internet Explorer中遇到证书错误提示,通常是因网站SSL/TLS证书问题或浏览器安全设置需调整。解决方法包括: 检查时间设置 调整IE设置 安装证书 调整计算机时间