原生javascript判断IE浏览器(包括IE11)

本文介绍了一种使用JavaScript来判断浏览器是否为IE及其版本的方法。针对IE11及以下版本,利用ActiveXObject对象进行判断,避免了仅依赖userAgent字段可能带来的误判。

js判断ie浏览器类型以及版本号一般是利用浏览器的useragent字段。通过判断useragent字段里面是否包含有MSIE字段来判断是否是IE系列浏览器!

但是在IE11之后,微软把自家的IE革命了,IE11里面的useagent没有MSIE字样。IE 11的userAgent为:"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; Media Center PC 6.0; .NET4.0C; .NET4.0E; Shuame; rv:11.0) like Gecko"。明显之前根据MSIE的方式来判断,对IE11是失效的。

其实除了userAgent字段外,我们可以使用ActiveXObject对象来进行判断。

一些说明如下:

1.IE早些版本时,IE10及以下,window.ActiveXObject 返回一个对象,!window.ActiveXObject则变为false,!!window.ActiveXObject则为true,因为是或||符号后续无需再判断,返回true。

2.IE11中,window.ActiveXObject返回undefine,!window.ActiveXObject则变成了 true,!!window.ActiveXObject则变成了false,进入 "window.ActiveXObject" in window判断,该判断条件在IE11下返回true。

3.其他非IE浏览器,如chrome,firefox,window.ActiveXObject都是 undefine,!!window.ActiveXObject都是返回的false,而 "window.ActiveXObject" in window也是返回false,因此上述判断函数在非IE浏览器中返回的都是false。

function isIEBrower(){
	if (!!window.ActiveXObject || "ActiveXObject" in window) {
		return true;
	}else{
		return false;
	}
}



转载于:https://my.oschina.net/oschinaindex/blog/420179

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值