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

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;console.log("article url: http://blog.csdn.net/aerchi/article/details/51697592");//判断IE 浏览器, //blog: http://blog.csdn.net/aerchi/article/details/51697592if("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, edgetrident = (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;}

-----------

乐意黎原创, 严禁采集或用于个人网站。
转载请注明作者及原文地址
本文地址:  http://blog.csdn.net/aerchi/article/details/51697592

[乐意黎原创] JS根据useAgent来判断edge, ie, firefox, chrome, opera, safari 等浏览器的类型及版本相关推荐

  1. [乐意黎原创] WebPack 打包时抛Uncaught Error: Cannot find module '.\dist\bundle.js'

    如题:WebPack 打包时抛Uncaught Error: Cannot find module '.\dist\bundle.js' A. Webpack 命令时抛错 B.运行时Chrome 控制 ...

  2. [乐意黎原创] 删除QQ的MiniBrowser浏览器,QQ聊天会话中点击链接直接用默认浏览器中打开

    [乐意黎原创] 删除QQ自带的MiniBrowser浏览器,使从聊天会话中点击链接直接打开默认浏览器中打开 如题,不知从什么版本开始,乐-意-黎无意中发现,点击QQ聊天会计中的链接时,不会在默认浏览器 ...

  3. [乐意黎原创]PHP启用session后抛 session_start(): open(/var/lib/php/session/sess_... 的解决办法

    如题,PHP启用SESSION后抛 Warning: session_start(): open(/var/lib/php/session_user/sess_d5gn9q7q9qii26ajk2c8 ...

  4. [乐意黎原创] 2014年全国和云南省中级会计师成绩、分数段、过关率及年龄段统计分析

    2014年全国会计资格考试报名人数达214万人,比2013年度增长3.88%. 其中: 初级资格为137.1万人,比去年增长了1.89%: 中级资格为72.4万人,比去年增长了7.27%: 高级资格为 ...

  5. [乐意黎原创] 优盘硬盘等标称的16G, 32G, 64G, 128G, 256G内存容量,实际有多大?

    不时有朋友问乐意黎,说买的手机内存, 优盘, 硬盘什么的存在虚标, 跟他们解释了半天,是换算的问题.结果他们还是不太懂. 没办法,哎, 有必要进行一次科普了. 本文地址:http://blog.csd ...

  6. [乐意黎原创] 红米1刷MIUI 6 系统

    本人[乐意黎]于2014年1月左右买的红米1. 至今使用己有快一年三个月的时间,由于安装的程序和东西太多,总感觉原有的MIUI 5用起来太卡.体验过别人的小米NOTEbook手机上的MIUI 6 系统 ...

  7. [乐意黎原创] 时间格式 yyyy-MM-dd‘T‘HH:mm:ss.SSSZ 中的T和Z表示什么

    1. 事情起因: 本人这久在关注一个地方域名( ***.ren,由于某些因素,此处用 *** 来代表域名), 因域名已经过期,有打算抢注的意愿,就等域名注册机构删除后我来抢注册了. ( ***.ren ...

  8. [乐意黎原创]Nginx里带参数的rewrite详解

    1. 如下所示,带 www.daza.ren/view-detail-weixin-9999.html 和 www.daza.ren/view-detail-weixin-9999.html?65 在 ...

  9. [乐意黎原创]关于IE,Firefox, Chrome等浏览器被t999.cn网页和2345浏览器流氓操作劫持的修复方法

    浏览器被t999.cn网页和2345浏览器,变为默认主页,无法取消,更改. 昨晚 帮某某使用了网上下载 KMS激活工具,想把office激活一下,安装并操作完成之后,打开了word没有再提示说要激活了 ...

最新文章

  1. bash 内置wait命令使用方法
  2. [Microsoft][ODBC SQL Server Driver][SQl Server]参数数据类型 text 对于 replace 函数的参数 1 无效。...
  3. CPA相关功耗分析(一)
  4. JIRA6.3.6中设置用户的解决问题和关闭问题权限
  5. JavaScript浮点运算0.2+0.1 !== 0.3
  6. mysql 流程控制语句,mysql PL(procedure language)流程控制语句
  7. select,poll,epoll的归纳总结区分
  8. dbproviderfactories.getfactory mysql_asp.net下使用DbProviderFactories的数据库操作类
  9. Android中添加自己的模块 【转】
  10. mysql datahost ha_mysql MySQL数据库高可用HA实现
  11. LeetCode 20 Valid Parentheses (C++)
  12. ssh互相免密登录_linux服务器之间实现ssh免密码登录的方法
  13. js base64图片太大_手把手教你常用JS方法封装(一) [ 大杂烩 ]
  14. 前端(HTML css JS)开发工具及常用插件推荐
  15. 对于bugku中杂项啊哒题的尝试解法
  16. 登录 不输入账号密码 不能到下一个页面 没办法通过网址直接进去
  17. ANDROID XML图像资源文件详细讲解(一)
  18. 幻影影音 - 免费的多媒体视频播放器
  19. r语言显示找不到read_html,R语言中read.table函数不常见的用法-文本中有#注释符号...
  20. python字符串转list(python字符串转数字)

热门文章

  1. “种一棵树最好的时间是十年前,其次是现在。”
  2. Excel函数--跟时间有关的函数(TODAY、DATEDIF、DAYS、DATEVALUE等)
  3. 高智商翻木块java_高智商游戏翻木块攻略,过关方法
  4. Python arcpy检查矢量自相交
  5. spring5学习系列之------1 给容器注册组件一 @Configuration  @Bean  @Scope  @Lazy
  6. iThoughtsX for mac(优秀的思维导图软件)v9.0中文激活版
  7. 知不足者好学耻下问者自满_对抗开发人员自满情绪的有效方法
  8. AIX创建激活删除LV
  9. 同样是购物狂欢,为什么“美黑五”被天猫“双十一”甩了10倍不止?
  10. 2020年程序员节杂记:老骥明知桑榆晚,不用扬鞭自奋蹄