欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

JS如何判断浏览器类型和详细区分IE各版本浏览器

程序员文章站 2023-12-10 13:30:52
今天用到js判断浏览器类型,于是就系统整理了一下,便于后期使用。 /* * 描述:判断浏览器信息 * 编写:littleqiang_w...

今天用到js判断浏览器类型,于是就系统整理了一下,便于后期使用。

 /* 
  * 描述:判断浏览器信息 
  * 编写:littleqiang_w 
  * 日期:2016.1.5 
  * 版本:v1.1 
  */ 
 
 //判断当前浏览类型 
 function browsertype() 
 { 
   var useragent = navigator.useragent; //取得浏览器的useragent字符串 
   var isopera = useragent.indexof("opera") > -1; //判断是否opera浏览器 
   var isie = useragent.indexof("compatible") > -1 && useragent.indexof("msie") > -1 && !isopera; //判断是否ie浏览器 
   var isedge = useragent.indexof("windows nt 6.1; trident/7.0;") > -1 && !isie; //判断是否ie的edge浏览器 
   var isff = useragent.indexof("firefox") > -1; //判断是否firefox浏览器 
   var issafari = useragent.indexof("safari") > -1 && useragent.indexof("chrome") == -1; //判断是否safari浏览器 
   var ischrome = useragent.indexof("chrome") > -1 && useragent.indexof("safari") > -1; //判断chrome浏览器 
 
   if (isie)  
   { 
      var reie = new regexp("msie (\\d+\\.\\d+);"); 
      reie.test(useragent); 
      var fieversion = parsefloat(regexp["$1"]); 
      if(fieversion == 7) 
      { return "ie7";} 
      else if(fieversion == 8) 
      { return "ie8";} 
      else if(fieversion == 9) 
      { return "ie9";} 
      else if(fieversion == 10) 
      { return "ie10";} 
      else if(fieversion == 11) 
      { return "ie11";} 
      else 
      { return "0"}//ie版本过低 
    }//isie end 
     
    if (isff) { return "ff";} 
    if (isopera) { return "opera";} 
    if (issafari) { return "safari";} 
    if (ischrome) { return "chrome";} 
    if (isedge) { return "edge";} 
  }//mybrowser() end 
   
  //判断是否是ie浏览器 
  function isie() 
  { 
   var useragent = navigator.useragent; //取得浏览器的useragent字符串 
   var isie = useragent.indexof("compatible") > -1 && useragent.indexof("msie") > -1 && !isopera; //判断是否ie浏览器 
   if(isie) 
   { 
     return "1"; 
   } 
   else 
   { 
     return "-1"; 
   } 
  } 
   
   
  //判断是否是ie浏览器,包括edge浏览器 
  function ieversion() 
  { 
   var useragent = navigator.useragent; //取得浏览器的useragent字符串 
   var isie = useragent.indexof("compatible") > -1 && useragent.indexof("msie") > -1 && !isopera; //判断是否ie浏览器 
var isedge = useragent.indexof("windows nt 6.1; trident/7.0;") > -1 && !isie; //判断是否ie的edge浏览器 
   if(isie) 
   { 
      var reie = new regexp("msie (\\d+\\.\\d+);"); 
      reie.test(useragent); 
      var fieversion = parsefloat(regexp["$1"]); 
      if(fieversion == 7) 
      { return "ie7";} 
      else if(fieversion == 8) 
      { return "ie8";} 
      else if(fieversion == 9) 
      { return "ie9";} 
      else if(fieversion == 10) 
      { return "ie10";} 
      else if(fieversion == 11) 
      { return "ie11";} 
      else 
      { return "0"}//ie版本过低 
   } 
else if(isedge) 
{ 
  return "edge"; 
} 
   else 
   { 
     return "-1";//非ie 
   } 
  } 

以上代码通过测试,可用!

但存在一个问题,即ie5与ie7浏览器暂不能区分,以下是ie5与ie7下useragent的信息;通过useragent发现,简单的通过以上方法,无法正确区分ie5和ie7。期待该问题的解决方案!!!

ie5: useragent   "mozilla/4.0 (compatible; msie 7.0; windows nt 6.1; 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; infopath.2; .net4.0e)"

ie7: useragent  "mozilla/4.0 (compatible; msie 7.0; windows nt 6.1; 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; infopath.2; .net4.0e)"

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。