判断浏览器
- 判断浏览器时我们需要用到
navigator.userAgent
navigator是一个对象,他包含了有关浏览器的信息
userAgent 属性是一个只读的字符串,声明了浏览器用于 HTTP 请求的用户代理头的值。
例如:Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.2; SV1; .NET CLR 1.1.4322)
完整的代码为
注意IE11已经没有MSIE这个值了,所以需要特殊处理一下var explorer = navigator.userAgent; //ie if (explorer.indexOf("MSIE") >= 0) { alert("browser is :ie"); } //firefox else if (explorer.indexOf("Firefox") >= 0) { alert("browser is :Firefox"); } //Chrome else if (explorer.indexOf("Chrome") >= 0) { alert("browser is :Chrome"); } //Opera else if (explorer.indexOf("Opera") >= 0) { alert("Opera"); alert("browser is :ie"); } //Safari else if (explorer.indexOf("Safari") >= 0) { alert("browser is :Safari"); } //Netscape else if (explorer.indexOf("Netscape") >= 0) { alert("browser is :Netscape"); } //判断是否IE浏览器 else if (explorer.indexOf("compatible") > -1 && explorer.indexOf("MSIE") > -1) { alert("browser is :IE"); } //判断是否Edge浏览器 else if (explorer.indexOf("Trident") > -1) { alert("browser is :Edge"); };
Trident是浏览器的内核,该内核常见的浏览器有IE6、IE7、IE8(Trident 4.0)、IE9(Trident 5.0)、IE10(Trident 6.0);360安全浏览器(1.0-5.0为Trident,6.0为Trident+Webkit,7.0为Trident+Blink)猎豹极轻浏览器,360极速浏览器。其中IE11会有个rv:11.0的值,以此来辨别IE11var isIE11 = userAgent.indexOf('Trident') > -1 && userAgent.indexOf("rv:11.0") > -1;
判断ie为某个版本
在IE11以下的浏览器中使用navigator.userAgent
会得到这样的结果
Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; WOW64; Trident/7.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; InfoPath.2; .NET4.0C; .NET4.0E)
其中的MSIE后面跟的数字 就是IE浏览器的版本号,例如:
IE8
IE9
具体完整的鉴别IE各个版本的操作代码为
function ifie(){
var userAgent = navigator.userAgent;
var isIE = userAgent.indexOf("compatible") > -1 && userAgent.indexOf("MSIE") > -1;
var isIE11 = userAgent.indexOf('Trident') > -1 && userAgent.indexOf("rv:11.0") > -1;
if(isIE) {
var reIE = new RegExp("MSIE (\\d+\\.\\d+);");
reIE.test(userAgent);
var fIEVersion = parseFloat(RegExp["$1"]);
if(fIEVersion == 7) {
return 7
}else if(fIEVersion == 8) {
return 8
}else if(fIEVersion == 9) {
return 9
}else if(fIEVersion == 10) {
return 10
}
} else if(isIE11){
return 11
}
}
鉴别PC及移动端
还是利用navigator.userAgent
来获取信息 当客户端是苹果的时候,会有iPhone的字段
如果是安卓的话,会有android的字段
从中也可以获取某个系统的版本如下图
为安卓5.0版本
完整的判断代码为
function ispc() {
var userAgentInfo = navigator.userAgent;
var Agents = ["Android", "iPhone","SymbianOS", "Windows Phone", "iPod"];
var flag = true;
for (var v = 0; v < Agents.length; v++) {
if (userAgentInfo.indexOf(Agents[v]) > 0) {
flag = false;
break;
}
}
if(window.screen.width>=768){
flag = true;
}
return flag;
}