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 相关文章推荐
asp javascript 实现关闭窗口时保存数据的办法
Nov 24 Javascript
超棒的javascript页面顶部卷动广告效果
Dec 01 Javascript
node.js中的fs.chown方法使用说明
Dec 16 Javascript
在JavaScript中处理时间之setMinutes()方法的使用
Jun 11 Javascript
jquery实现模拟百分比进度条渐变效果代码
Oct 29 Javascript
domReady的实现案例
Nov 23 Javascript
前端主流框架vue学习笔记第二篇
Jul 26 Javascript
JavaScript的setter与getter方法
Nov 29 Javascript
django js 实现表格动态标序号的实例代码
Jul 12 Javascript
Element-Ui组件 NavMenu 导航菜单的具体使用
Oct 24 Javascript
vue.js 解决v-model让select默认选中不生效的问题
Jul 28 Javascript
javascript实现简单页面倒计时
Mar 02 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日期处理函数 整型日期格式
2011/01/12 PHP
教你如何用php实现LOL数据远程获取
2014/06/10 PHP
Zend Framework实现多文件上传功能实例
2016/03/21 PHP
微信支付开发交易通知实例
2016/07/12 PHP
浅谈PHP错误类型及屏蔽方法
2017/05/27 PHP
Thinkphp页面跳转设置跳转等待时间的操作
2019/10/16 PHP
特殊字符、常规符号及其代码对照表
2006/06/26 Javascript
JQuery Tips(3) 关于$()包装集内元素的改变
2009/12/14 Javascript
基于jquery的一个简单的脚本验证插件
2010/04/05 Javascript
利用腾讯的ip地址库做ip物理地址定位
2010/07/24 Javascript
Javascript中实现String.startsWith和endsWith方法
2015/06/10 Javascript
JavaScript实现带箭头标识的多级下拉菜单效果
2015/08/27 Javascript
jQuery实现移动端滑块拖动选择数字效果
2015/12/24 Javascript
APP中javascript+css3实现下拉刷新效果
2016/01/27 Javascript
12个非常实用的JavaScript小技巧【推荐】
2016/05/18 Javascript
JavaScript知识点总结(十六)之Javascript闭包(Closure)代码详解
2016/05/31 Javascript
BootStrap初学者对弹出框和进度条的使用感觉
2016/06/27 Javascript
js利用正则表达式检验输入内容是否为网址
2016/07/05 Javascript
Ztree新增角色和编辑角色回显问题的解决
2016/10/25 Javascript
详解使用vue实现tab 切换操作
2017/07/03 Javascript
jQuery制作全屏宽度固定高度轮播图(实例讲解)
2017/07/08 jQuery
剖析Angular Component的源码示例
2018/03/23 Javascript
Vuex中的State使用介绍
2019/01/19 Javascript
在VUE中实现文件下载并判断状态的方法
2019/11/08 Javascript
微信小程序弹窗禁止页面滚动的实现代码
2020/12/30 Javascript
Python获取运行目录与当前脚本目录的方法
2015/06/01 Python
python用模块zlib压缩与解压字符串和文件的方法
2016/12/16 Python
Python中列表list以及list与数组array的相互转换实现方法
2017/09/22 Python
如何利用Python给自己的头像加一个小国旗(小月饼)
2020/10/02 Python
美国玛丽莎收藏奢华时尚商店:Marissa Collections
2016/11/21 全球购物
美国温暖商店:The Warming Store
2018/12/15 全球购物
Desigual美国官方网站:西班牙服装品牌
2019/03/29 全球购物
新品发布会策划方案
2014/06/08 职场文书
校本教研活动总结
2014/07/01 职场文书
特种设备安全管理制度
2015/08/06 职场文书
MySQL注入基础练习
2021/05/30 MySQL