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 相关文章推荐
获取HTML DOM节点元素的方法的总结
Aug 21 Javascript
jquery实现的随机多彩tag标签随机颜色和字号大小效果
Mar 27 Javascript
jQuery学习笔记之 Ajax操作篇(三) - 过程处理
Jun 23 Javascript
使用Script元素发送JSONP请求的方法
Jun 12 Javascript
特殊日期提示功能的实现方法
Jun 16 Javascript
JS定时检测任务任务完成后执行下一步的解决办法
Dec 22 Javascript
JavaScript中的this陷阱的最全收集并整理(没有之一)
Feb 21 Javascript
JS变量及其作用域
Mar 29 Javascript
Mac中安装nvm的教程分享
Dec 11 Javascript
微信小程序实现弹出菜单功能
Jun 12 Javascript
vue路由导航守卫和请求拦截以及基于node的token认证的方法
Apr 07 Javascript
RxJS在TypeScript中的简单使用详解
Apr 13 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 mysql索引问题
2008/06/07 PHP
使用php+Ajax实现唯一校验实现代码[简单应用]
2011/11/29 PHP
PHP 进度条函数的简单实例
2017/09/19 PHP
模拟电子签章盖章效果的jQuery插件源码
2013/06/24 Javascript
document.write()及其输出内容的样式、位置控制
2013/08/12 Javascript
JS执行删除前的判断代码
2014/02/18 Javascript
node.js中的console.dir方法使用说明
2014/12/10 Javascript
jquery插件tytabs.jquery.min.js实现渐变TAB选项卡效果
2015/08/25 Javascript
JavaScript预解析及相关技巧分析
2016/04/21 Javascript
Bootstrap3制作图片轮播效果
2016/05/12 Javascript
AngularJs  Creating Services详解及示例代码
2016/09/02 Javascript
百度搜索框智能提示案例jsonp
2016/11/28 Javascript
详解Angular 4.x 动态创建组件
2017/04/25 Javascript
Bootstrap Table使用整理(三)
2017/06/09 Javascript
前端必备插件之纯原生JS的瀑布流插件Macy.js
2017/11/22 Javascript
原生JS实现多个小球碰撞反弹效果示例
2018/01/31 Javascript
原生js封装的ajax方法示例
2018/08/02 Javascript
koa源码中promise的解读
2018/11/13 Javascript
小程序如何支持使用 async/await详解
2019/09/12 Javascript
微信接入之获取用户头像的方法步骤
2019/09/23 Javascript
基于js实现逐步显示文字输出代码实例
2020/04/02 Javascript
[01:20]2018DOTA2亚洲邀请赛总决赛战队Mineski晋级之路
2018/04/07 DOTA
Python Mysql数据库操作 Perl操作Mysql数据库
2009/01/12 Python
python实现带声音的摩斯码翻译实现方法
2015/05/20 Python
python自动化之Ansible的安装教程
2019/06/13 Python
简述Html5 IphoneX 适配方法
2018/02/08 HTML / CSS
写一个在SQL Server创建表的SQL语句
2012/03/10 面试题
Ado与Ado.net的相同与不同
2014/12/08 面试题
农贸市场管理制度
2014/01/31 职场文书
管理失职检讨书
2014/02/12 职场文书
2014红色之旅心得体会
2014/10/07 职场文书
小学公民道德宣传日活动总结
2015/03/23 职场文书
redis cluster支持pipeline的实现思路
2021/06/23 Redis
Redis入门教程详解
2021/08/30 Redis
详解redis在微服务领域的贡献
2021/10/16 Redis
分享MySQL常用 内核 Debug 几种常见方法
2022/03/17 MySQL