今天用到JS判断浏览器类型,于是就系统整理了一下,便于后期使用。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
|
/* * 描述:判断浏览器信息
* 编写:LittleQiang_w
* 日期:2016.1.5
* 版本:V1.1
*/
//判断当前浏览类型
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( "Windows NT 6.1; Trident/7.0;" ) > -1 && !isIE; //判断是否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版本过低
} //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版本过低
}
else if (isEdge)
{ return "Edge" ;
} else
{
return "-1" ; //非IE
}
}
|
以上代码通过测试,可用!
但存在一个问题,即IE5与IE7浏览器暂不能区分,以下是IE5与IE7下userAgent的信息;通过userAgent发现,简单的通过以上方法,无法正确区分IE5和IE7。期待该问题的解决方案!!!
IE5: userAgent "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; Trident/7.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; InfoPath.2; .NET4.0E)"
IE7: userAgent "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; Trident/7.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; InfoPath.2; .NET4.0E)"
JS判断浏览器类型和详细区分IE各版本浏览器的更多相关文章
-
JS如何判断浏览器类型和详细区分IE各版本浏览器
/* * 描述:判断浏览器信息 * 编写:LittleQiang_w * 日期:2016.1.5 * 版本:V1.1 */ //判断当前浏览类型 function BrowserType() { va ...
-
js判断undefined类型,undefined,null, 的区别详细解析
js判断undefined类型 今天使用showModalDialog打开页面,返回值时.当打开的页面点击关闭按钮或直接点浏览器上的关闭则返回值是undefined所以自作聪明判断 var reVal ...
-
html5 -js判断undefined类型
js判断undefined类型 今天使用showModalDialog打开页面,返回值时.当打开的页面点击关闭按钮或直接点浏览器上的关闭则返回值是undefined所以自作聪明判断 var reVal ...
-
通过JS判断联网类型和连接状态
通过JS判断联网类型和连接状态 中国的移动网络环境复杂,为了给用户带去更好访问体验,开发者希望能了解用户当前的联网方式,然后给用户一个符合当前网络环境的请求结果. W3C的规范中给出了一个方法来获得现 ...
-
js判断undefined类型,undefined,null,NaN的区别
js判断undefined类型 今天使用showModalDialog打开页面,返回值时.当打开的页面点击关闭按钮或直接点浏览器上的关闭则返回值是undefined 所以自作聪明判断 ...
-
js判断undefined类型
js判断undefined类型 if (reValue== undefined){ alert("undefined"); } 发现判断不出来,最后查了下资料要用ty ...
-
判断网页打开浏览器类型,PC 手机端,微信浏览器,,,
//判断网页打开浏览器类型,PC 手机端,微信浏览器,,, <script type="text/javascript"> var browser = { versio ...
-
js判断变量类型,类型转换,
1.typeof 操作符 主要检测基础数据类型 var a="zhangqian"; var b=true; ; var d; var e=null; var f=new Obje ...
-
16. js 判断变量类型,包括ES6 新类型Symbol
相信大家在开发中遇到需要判断变量类型的问题,js变量按存储类型可分为值类型和引用类型,值类型包括Undefined.String.Number.Boolean,引用类型包括object.Array.F ...
随机推荐
-
Mybatis学习--Mapper.xml映射文件
简介 Mapper.xml映射文件中定义了操作数据库的sql,每个sql是一个statement,映射文件是mybatis的核心. 映射文件中有很多属性,常用的就是parameterType(输入类型 ...
-
python-操作MySQL数据库
1.安装MySQLdb? 为了用DB-API编写MySQL脚本,必须确保已经安装了MySQL.复制以下代码,并执行: #!/usr/bin/python # -*- coding: UTF-8 -*- ...
-
Hadoop学习第一天
1.hadoop量大,数目多. 存储:分布式,集群的概念,管理(主节点.从节点),HDFS. 分析:分布式.并行.离线计算框架,管理(主节点.从节点),MapReduce. 来源:GFS->HD ...
-
TI-RTOS 定时器的使用
定时器 在TI-RTOS中属于内核的一部分,因此想了解它的使用还是要阅读Bios_User_Guide.pdf. 主要用到这么几个API, 加粗字体 更多的定义可以在 ..\packages\ti\s ...
-
[Swift]LeetCode828. 独特字符串 | Unique Letter String
A character is unique in string S if it occurs exactly once in it. For example, in string S = " ...
-
P3353 在你窗外闪耀的星星
飞逝的的时光不会模糊我对你的记忆.难以相信从我第一次见到你以来已经过去了3年.我仍然还生动地记得,3年前,在美丽的集美中学,从我看到你微笑着走出教室,你将头向后仰,柔和的晚霞照耀着你玫瑰色的脸颊.我明 ...
-
ubuntu windows10 in GPT HDD GRUB Boot
some thing wrong with my input, I can just use English -_-!!! The HDD have two kinds of formart, GP ...
-
2018.11.24 loj#111. 后缀排序(后缀数组)
传送门 后缀排序模板题. 终于会后缀数组了(然而只会倍增并不会DC3DC3DC3). 在这里列举几个数组的意思: sai:sa_i:sai:当前排名第iii的后缀的起始下标. rkirk_irki ...
-
caffe安装编译问题-ImportError: No module named skimage.io
问题描述 >>> import caffe Traceback (most recent call last): File , in <module> File , in ...
-
MSSQL中IN是否用索引.....[转]
作者:no_mIss 用MSSQL时间快一年了,数据量有时会相对比较多,所以经常要优化,也看过很多资料,但大都有一句:IN.NOT IN不用索引,今天发此贴希望能有人参与讨论,到底IN用不用索引,如果 ...