Javascript关于浏览器的内容

1. 判断浏览器及版本等

重点是navigator.userAgent的使用

1.1. IE

IE的主要问题是IE 11

在ie8/9/10下,navigator.userAgent分别输出如下:

navigator.userAgent
//10 "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; .NET4.0C; .NET4.0E; zhumu 4.0.0)"
// 9 "Mozilla/5.0 (compatible; MSIE 9.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; .NET4.0C; .NET4.0E; zhumu 4.0.0)"
//8 "Mozilla/4.0 (compatible; MSIE 8.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; .NET4.0C; .NET4.0E; zhumu 4.0.0)"

但是在ie11下,其内核为edge。输出为:

//11 "Mozilla/5.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; .NET4.0C; .NET4.0E; zhumu 4.0.0; rv:11.0) like Gecko"

所以,单纯的使用navigator.userAgent是无法判断ie11的

/**
* 该方法无法判断出IE 11
*/
function isIE(){
    if (window.navigator.userAgent.indexOf("MSIE")>=1) 
        return true; 
    else
        return false; 
}
/**
* 包括ie11,但仅凭该方法无法判断浏览器版本号
*/
function isIE() { //ie?
    if (!!window.ActiveXObject || "ActiveXObject" in window)
        return true;
    else
        return false;
}
/**
* 综合上述方法,如下判断ie则基本正确
*/
function browserIE() {
    if (!!window.ActiveXObject || "ActiveXObject" in window){//是IE
        var userAgent = navigator.userAgent,reIE = new RegExp("MSIE (\\d+\\.\\d+);");
        if(reIE.test(userAgent)){
            return parseFloat(RegExp["$1"]);
        }else{
            return 11;
        }
    }
}

1.2. 其它

navigator.userAgent
//chrome "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36"

注意chrome和Safari的区别。chrome中有Safari字符串,但是Safari中无Chrome字符串

// 一下代码未经测试
var userAgent = navigator.userAgent; //取得浏览器的userAgent字符串
var isOpera = userAgent.indexOf("Opera") > -1; //判断是否Opera浏览器
var isEdge = userAgent.indexOf("Edge") > -1; //判断是否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浏览器

2. IE特殊标签

lte:Less than or equal to
lt :Less than
gte:Greater than or equal to
gt :Greater than

<!--[if IE]> Only IE <![endif]-->
所有的IE可识别
<!--[if IE 5.0]> Only IE 5.0 <![endif]-->
只有IE5.0可以识别
<!--[if gt IE 5.0]> Only IE 5.0+ <![endif]-->
高于IE5.0都可以识别
<!--[if lt IE 6]> Only IE 6- <![endif]-->
低于IE6可识别
<!--[if gte IE 6]> Only IE 6/+ <![endif]-->
IE6以及IE6以上都可识别
<!--[if lte IE 7]> Only IE 7/- <![endif]-->
IE7及ie7以下版本可识别
<!--[if (gte IE 9)|!(IE)]><!--><html> <!--<![endif]-->
大于等于ie9或者非ie浏览器
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值