您的位置:首页 > Web前端 > JavaScript

JS判断各浏览器类型及版本

2015-11-18 10:44 573 查看
昨天写了一个滑动块的效果,今天发现原来在火狐上不兼容,后来查资料,发现伪元素 :after, :before在火狐的高版本中才能显示,于是研究了下如何判断浏览器的类型及版本信息,鉴于IE11版本开始没有了MSIE字段,所以自己又作了部分更改。

并且在关键步骤中,详细得列出了对应的log,有助于理解代码。

昨天写得滑块在火狐中的问题可能需要深究下:after和:before,研究之后会再作说明,一点一点深入吧。

在IE中的效果,真心是丑得不行,好吧,既然用了html5,我就暂且不管IE了。

[code]var browser = getBrowserInfo() ;//浏览器信息
//alert(browser);//IE 11.0
//IE11以下: MSIE 10.0、MSIE9.0等
//chrome:chrome/41.0.2272.89 [返回的是个数组] 
//firefox: firefox/42.0 [返回的是个数组] 
var verinfo = (browser+"").replace(/[^0-9.]/ig,""); //浏览器版本
//alert(verinfo);//11.0
//IE浏览器: 11.0/10.0/9.0
//chrome浏览器:41.0.2272.89
//Firefox浏览器: 42.0
 function getBrowserInfo()
 {
      var agent = navigator.userAgent.toLowerCase() ;
      //console.log(agent);
      //agent chrome : mozilla/5.0 (windows nt 6.1; wow64) applewebkit/537.36 (khtml, like gecko) chrome/41.0.2272.89 safari/537.36
      //agent firefox : mozilla/5.0 (windows nt 6.1; wow64; rv:42.0) gecko/20100101 firefox/42.0
      //agent  IE11: 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;infopath.2; .net4.0c; .net4.0e; rv:11.0) like gecko 
      (可以看出IE11中不包括MSIE字段)
      //agent  IE10:   mozilla/5.0(compatible; msie 10.0; windows nt 6.1; wow64; trident/6.0)
      var regStr_ie = /msie [\d.]+;/gi ;
      var regStr_ff = /firefox\/[\d.]+/gi
      var regStr_chrome = /chrome\/[\d.]+/gi ;
      var regStr_saf = /safari\/[\d.]+/gi ;
      //IE11以下
      if(agent.indexOf("msie") > 0)
      {
          return agent.match(regStr_ie) ;
      }
      //IE11版本中不包括MSIE字段
      if(agent.indexOf("trident") > 0&&agent.indexOf("rv") > 0){
          return "IE " + agent.match(/rv:(\d+\.\d+)/) [1];
      }
      //firefox
      if(agent.indexOf("firefox") > 0)
      {
          return agent.match(regStr_ff) ;
      }
      //Chrome
      if(agent.indexOf("chrome") > 0)
      {
          return agent.match(regStr_chrome) ;
      }
      //Safari
      if(agent.indexOf("safari") > 0 && agent.indexOf("chrome") < 0)
      {
          return agent.match(regStr_saf) ;
      }
 }
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: