首页 > Web > 一行代码检测IE浏览器以及IE版本
2014
11-15

一行代码检测IE浏览器以及IE版本

通常我们提倡特性检测,但那是针对具体的功能开发的时候,如果要检测浏览器类型以及版本,就不应该使用特性检测了。例如我们经常检测IE6的代码是:

我们不能排除第三方类库为IE6增加XMLHttpRequest方法,例如这个XMLHttpRequest兼容库

所以应该使用userAgent代理字符串来检测浏览器,这个字符串就是为前后端提供环境识别的。

很多情况下,我们其实只需要识别出是否是IE,以及IE的版本,下面这一行代码就可以办到:

然后就可以使用判断if(isIE){} 或者 if(isIE===6){}。

但是,以上代码并不能识别IE11及以上版本,因为IE11修改了userAgent 字符串,不再包含MSIE的标识。

IE11的意思是,觉着自己高大上了,不能再和你们这群奇模怪样的屌丝IE6-10混了,也来like Gecko。

IE11为了使自己更像一款现代浏览器,支持现行标准,丢掉包袱(查看 IE11 中的兼容性更改),使用老的特性检测或者老的代理字符串检测方式已经不能区分出IE11了,成功跻身到高富帅行列。

但是,IE11虽然IE家族中的高富帅,其余屌丝也得照顾,所以document.documentMode是万万不能丢的。这个IE独有的属性为我们提供了简便可靠的识别。因为document.documentMode本身就是标识IE浏览器文档模式的,所以不属于功能特性。

最终判断IE的代码

转至Jony

最后编辑:
作者:7iang
做自己