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


Posted in Javascript onMarch 04, 2017

今天用到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)"

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

Javascript 相关文章推荐
javascript Ext JS 状态默认存储时间
Feb 15 Javascript
jquery下利用jsonp跨域访问实现方法
Jul 29 Javascript
javascript相等运算符与等同运算符详细介绍
Nov 09 Javascript
javascript数组详解
Oct 22 Javascript
jQuery 选择器详解
Jan 19 Javascript
浅析四种常见的Javascript声明循环变量的书写方式
Oct 14 Javascript
js时间戳转为日期格式的方法
Dec 28 Javascript
JQuery ztree带筛选、异步加载实例讲解
Feb 25 Javascript
基于jQuery实现Ajax验证用户名是否存在实例
Mar 30 Javascript
jquery 点击元素后,滚动条滚动至该元素位置的方法
Aug 05 Javascript
详解ng-alain动态表单SF表单项设置必填和正则校验
Jun 11 Javascript
Vue使用mixin分发组件的可复用功能
Sep 01 Javascript
详解在Vue中通过自定义指令获取dom元素
Mar 04 #Javascript
在javaScript中检测数据类型的几种方式小结
Mar 04 #Javascript
jQuery插件echarts实现的去掉X轴、Y轴和网格线效果示例【附demo源码下载】
Mar 04 #Javascript
jQuery插件echarts实现的循环生成图效果示例【附demo源码下载】
Mar 04 #Javascript
php输出全部gb2312编码内的汉字方法
Mar 04 #Javascript
jQuery插件echarts实现的多柱子柱状图效果示例【附demo源码下载】
Mar 04 #Javascript
jQuery插件Echarts实现的双轴图效果示例【附demo源码下载】
Mar 04 #Javascript
You might like
PHP安装问题
2006/10/09 PHP
一篇入门的php Class 文章
2007/04/04 PHP
PHP 5.0对象模型深度探索之类的静态成员
2008/03/27 PHP
php数据类型判断函数有哪些
2013/09/23 PHP
PHP set_error_handler()函数使用详解(示例)
2013/11/12 PHP
一张表搞清楚php is_null、empty、isset的区别
2015/07/07 PHP
Laravel框架中Blade模板的用法示例
2017/08/30 PHP
php微信公众号开发之秒杀
2018/10/20 PHP
浅谈laravel框架sql中groupBy之后排序的问题
2019/10/17 PHP
javascript 可以拖动的DIV(二)
2009/06/26 Javascript
JQuery对checkbox操作 (循环获取)
2011/05/20 Javascript
$.format,jquery.format 使用说明
2011/07/13 Javascript
javaScript矢量图表库-gRaphael几行代码实现精美的条形图/饼图/点图/曲线图
2013/01/09 Javascript
nodejs事件的监听与触发的理解分析
2015/02/12 NodeJs
html+js实现简单的计算器代码(加减乘除)
2016/07/12 Javascript
Bootstrap登陆注册页面开发教程
2016/07/12 Javascript
jQ处理xml文件和xml字符串的方法(详解)
2016/11/22 Javascript
BootStrap实现鼠标悬停下拉列表功能
2017/02/17 Javascript
BootStrap中Table隐藏后显示问题的实现代码
2017/08/31 Javascript
layui 表格的属性的显示转换方法
2018/08/14 Javascript
JS获取今天是本月第几周、本月共几周、本月有多少天、是今年的第几周、是今年的第几天的示例代码
2018/12/05 Javascript
VUE脚手架具体使用方法
2019/05/20 Javascript
Python之eval()函数危险性浅析
2014/07/03 Python
python实现从一组颜色中找出与给定颜色最接近颜色的方法
2015/03/19 Python
浅谈tensorflow中几个随机函数的用法
2018/07/27 Python
利用Python将每日一句定时推送至微信的实现方法
2018/08/13 Python
Python 二叉树的层序建立与三种遍历实现详解
2019/07/29 Python
Python转换itertools.chain对象为数组的方法
2020/02/07 Python
Python+OpenCV图像处理——实现轮廓发现
2020/10/23 Python
python进行二次方程式计算的实例讲解
2020/12/06 Python
英国最大的在线奢侈手表零售商:Jura Watches
2018/01/29 全球购物
JD Sports荷兰:英国领先的运动时尚零售商
2020/03/13 全球购物
小学生操行评语大全
2014/04/22 职场文书
2014年幼儿园教师工作总结
2014/11/08 职场文书
任命通知范文
2015/04/21 职场文书
大国崛起观后感
2015/06/02 职场文书