JS判断浏览器版本(已解决IE11版本为Mozilla问题)

兼容IE11的判断方式

var getExplorer = (function() {
    var explorer = window.navigator.userAgent,
    compare = function(s) { return (explorer.indexOf(s) >= 0); },
    ie11 = (function() { return ("ActiveXObject" in window) })();
    if (compare("MSIE") || ie11) { return 'ie'; }
    else if (compare("Firefox") && !ie11) { return 'Firefox'; }
    else if (compare("Chrome") && !ie11) { return 'Chrome'; }
    else if (compare("Opera") && !ie11) { return 'Opera'; }
    else if (compare("Safari") && !ie11) { return 'Safari'; }
})()

注意:getExplorer返回结果是一个字符串,如判断是否为IE浏览器
if (getExplorer == 'ie') {
 alert('当前浏览器版本:IE');  
}


参考文献1:http://blog.csdn.net/whupanyinghua/article/details/38026027

js判断的方式都是利用浏览器的useragent字段。通过判断useragent字段里面是否包含有MSIE字段来判断是否是IE系列浏览器,但是在IE11之后,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"。IE11之后根据MSIE的方式来判断,对IE11是无效的。

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

一个很简单的判断函数如下
function isIE()
{
    if(!!window.ActiveXObject || "ActiveXObject" in window)
        return true;
    else
        return false;
}


参考文献2:http://www.softwhy.com/forum.php?mod=viewthread&tid=15052

获取IE浏览器的版本在以前非常的好操作,但是由于IE11浏览器的出现,导致很多以前常用的方法已经无能为力,下面就介绍一下如何判断IE浏览器的版本,并且能够兼容IE11浏览器。






蚂蚁部落




 

上面的代码实现了判断功能,下面介绍一下它的实现原理,希望能够给需要的朋友带来帮助。
先来看一段代码:

navigator.userAgent
IE11下的信息截图:

然后使用相应的正则表达式进行匹配。IE11和以前版本的浏览器还是有较大差别的,以前的版本,这个信息中包含msie,IE11中没有了,新增加trident,后面跟着浏览器的版本号码,这一点要特别注意一下。





你可能感兴趣的:(javascript)