[转]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)
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
[转]JS根据useAgent来判断edge, ie, firefox, chrome, opera, safari 等浏览器的类型及版本的更多相关文章
- 史上最全的css hack(ie6-9,firefox,chrome,opera,safari) (zz)
在这个浏览器百花争鸣的时代,作为前端开发的我们为了我们漂亮的设计能适应各个浏览器可为煞费苦心,主要体现在javascript和css上面.javascript我这次就不谈了,先说说css. ...
- 史上最全的css hack(ie6-9,firefox,chrome,opera,safari)
<!DOCTYPE html> <html> <head> <title>Css Hack</title> <style> #t ...
- JS判断浏览器类型的方法总结(IE firefox chrome opera safari)
JS判断浏览器类型的方法总结,可判别当前客户端所使用的浏览器是ie,firefox,safari,chrome或者是opera,另外js可以精确判断到ie浏览器的版本,依然直接上代码,需要的朋友可按照 ...
- JS根据userAgent值来判断浏览器的类型及版本【转】
转自:http://blog.csdn.net/sunlovefly2012/article/details/22384255 JavaScript是前端开发的主要语言,我们可以通过编写JavaScr ...
- 各种浏览器(IE,Firefox,Chrome,Opera)COOKIE修改方法[转]
各种浏览器(IE,Firefox,Chrome,Opera)COOKIE修改方法[转] 网站通过 Cookie 保存了我们访问网站的信息,在不同的浏览器中修改 Cookie 可以如下操作: Firef ...
- JS复制内容到剪贴板: 兼容IE、Firefox、Chrome、Safari所有浏览器【转】
正 文: 现在浏览器种类也越来越多,诸如 IE.Firefox.Chrome.Safari等等,因此现在要实现一个js复制内容到剪贴板的小功能就不是一件那么容易的事了. 在FLASH 9 时代,有一个 ...
- JS判断IE,FF,Opera,Safari等浏览器类型
第一种,只区分浏览器,不考虑版本 function myBrowser(){ var userAgent = navigator.userAgent; //取得浏览器的userAgent字符串 var ...
- js/jQuery判断浏览器名称、内核版本、浏览器壳
1.js方法 /* 判断浏览器名称和版本 目前只能判断:ie/firefox/chrome/opera/safari 2012年5月16日23:47:08 浏览器内核UA:UA; 浏览器内核名称:NV ...
- js new Date("2016-07-01 08:00:00") 格式在IE内核浏览器中显示NaN的问题
js new Date("2016-07-01 08:00:00") 格式在IE内核浏览器中显示NaN的问题 废话就不多了,var dd = new Date("2016 ...
随机推荐
- 面向对象【day08】:动态导入模块(八)
本节内容 1.概述 2.知识回顾 3.动态导入模块 一.概述 我们之前导入模块都是用import,或者from ... import ....这种模式去导入模块,那如果我们如何实现只用字符串就可以导入 ...
- Sublime Text3中 less 自动编译成 css 的方法
使用sublime text的less2css插件 步骤: 1.安装node.js,这个到官网下载即可 2.安装less,方法:命令行输入: npm install -g less 3.sublime ...
- layui(六)——upload组件常见用法总结
layui中提供了非常简单的文件上传组件,这里写了一个上传图片的栗子,上传成功后返回图片在服务器的路径,并设置为页面中img的src属性.因为上传十分简单,没什么可说的,就直接上代码了. html代码 ...
- Linux拉你入门
前言:为了做一个更优秀的程序猿,Linux是必不可少的,因此利用闲杂的时间来增加自己对Linux的认识 (一)关于Linux命令编(至于怎样安装vmvare这一个章节就先不介绍了) 1.基础命令 1. ...
- Linux系统中用户组、文件权限浅解
用户组 在linux中的每个用户必须属于一个组,不能独立于组外.在Linux中每个文件有所有者.所在组.其它组的概念. [所有者] 一般为文件的创建者,谁创建了该文件,就天然的成为该文件的所有者,用& ...
- python保存文件到数据库
效果 model class WEIGUI_IMG(Base): __tablename__ = 'DW_ZHS_D_WEIGUI_IMG' # 表名 id = Column(), primary_k ...
- TCP时间获取程序
一.服务器程序 #include <stdio.h> #include <stdlib.h> #include <time.h> #include <sys/ ...
- Linux查看版本信息
查看Linux版本以及是32位还是64位 查看版本 一.查看Linux内核版本命令(两种方法): 1.cat /proc/version [root@S-CentOS home]# cat /proc ...
- 【bzoj 3173】[Tjoi2013]最长上升子序列
Description 给定一个序列,初始为空.现在我们将1到N的数字插入到序列中,每次将一个数字插入到一个特定的位置.每插入一个数字,我们都想知道此时最长上升子序列长度是多少? Input 第一行一 ...
- Mysql 基础导入导出
Mysql 导出数据库: mysqldump -u root -p 数据库 > 导出库名.sql mysqldump -u 用户名 -p 数据库名 表名 > 导出表名.sql 示例:mys ...