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

来源:互联网 发布:js实现九九乘法表 编辑:程序博客网 时间:2024/06/06 00:39

兼容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浏览器。

<!DOCTYPE html><html><head><meta charset=" utf-8"><meta name="author" content="http://www.softwhy.com/" /><title>蚂蚁部落</title><script type="text/javascript">var userAgent = navigator.userAgent,   rMsie = /(msie\s|trident.*rv<img src="static/image/smiley/default/smile.gif" smilieid="1" alt="" border="0">([\w.]+)/,   rFirefox = /(firefox)\/([\w.]+)/,   rOpera = /(opera).+version\/([\w.]+)/,   rChrome = /(chrome)\/([\w.]+)/,   rSafari = /version\/([\w.]+).*(safari)/;  var browser;  var version;  var ua = userAgent.toLowerCase();  function uaMatch(ua){    var match = rMsie.exec(ua);    if(match != null){      return { browser : "IE", version : match[2] || "0" };    }    var match = rFirefox.exec(ua);    if (match != null) {      return { browser : match[1] || "", version : match[2] || "0" };    }    var match = rOpera.exec(ua);    if (match != null) {      return { browser : match[1] || "", version : match[2] || "0" };    }    var match = rChrome.exec(ua);    if (match != null) {      return { browser : match[1] || "", version : match[2] || "0" };    }    var match = rSafari.exec(ua);    if (match != null) {      return { browser : match[2] || "", version : match[1] || "0" };    }    if (match != null) {      return { browser : "", version : "0" };    }  }  var browserMatch = uaMatch(userAgent.toLowerCase());  if (browserMatch.browser){    browser = browserMatch.browser;    version = browserMatch.version;  }  document.write(browser+version);          </script></script></head><body> </body></html>
上面的代码实现了判断功能,下面介绍一下它的实现原理,希望能够给需要的朋友带来帮助。
先来看一段代码:

navigator.userAgent
IE11下的信息截图:

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





0 0