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 相关文章推荐
多种方式实现JS调用后台方法进行数据交互
Aug 20 Javascript
Javascript实现计算个人所得税
May 10 Javascript
IE和Firefox之间在JavaScript语法上的差异
Apr 22 Javascript
利用transition实现文字上下抖动的效果
Jan 21 Javascript
Js实现中国公民身份证号码有效性验证实例代码
May 03 Javascript
JS+HTML5 FileReader实现文件上传前本地预览功能
Mar 27 Javascript
原生js实现简单的焦点图效果实例
Dec 14 Javascript
js和jQuery以及easyui实现对下拉框的指定赋值方法
Jan 23 jQuery
js数组去重的N种方法(小结)
Jun 07 Javascript
JS中比Switch...Case更优雅的多条件判断写法
Sep 05 Javascript
jquery制作的移动端购物车效果完整示例
Feb 24 jQuery
JavaScript选择器函数querySelector和querySelectorAll
Nov 27 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垃圾回收机制简单说明
2010/07/22 PHP
php生成zip压缩文件的方法详解
2013/06/09 PHP
用php简单实现加减乘除计算器
2014/01/06 PHP
php对二维数组进行相关操作(排序、转换、去空白等)
2015/11/04 PHP
Yii清理缓存的方法
2016/01/06 PHP
PHP中的empty、isset、isnull的区别与使用实例
2019/03/22 PHP
javascript 对象定义方法 简单易学
2009/03/22 Javascript
javascript游戏开发之《三国志曹操传》零部件开发(四)用地图块拼成大地图
2013/01/23 Javascript
JS批量修改PS中图层名称的方法
2014/01/26 Javascript
JavaScript数组深拷贝和浅拷贝的两种方法
2014/04/16 Javascript
简介JavaScript中的setTime()方法的使用
2015/06/11 Javascript
js获取隐藏元素宽高的实现方法
2016/05/19 Javascript
关于jquery中动态增加select,事件无效的快速解决方法
2016/08/29 Javascript
js, jQuery实现全选、反选功能
2017/03/08 Javascript
Nodejs中crypto模块的安全知识讲解
2018/01/03 NodeJs
JS实现将对象转化为数组的方法分析
2019/01/21 Javascript
AJAX在JQuery中的应用详解
2019/01/30 jQuery
详解小程序退出页面时清除定时器
2019/04/28 Javascript
JavaScript原型式继承实现方法
2019/11/06 Javascript
JS数组及对象遍历方法代码汇总
2020/06/16 Javascript
微信小程序swiper组件实现抖音翻页切换视频功能的实例代码
2020/06/24 Javascript
JavaScript如何判断对象有某属性
2020/07/03 Javascript
在Vuex中Mutations修改状态操作
2020/07/24 Javascript
[59:35]DOTA2上海特级锦标赛主赛事日 - 3 败者组第三轮#1COL VS Alliance第二局
2016/03/04 DOTA
Python使用asyncio包处理并发详解
2017/09/09 Python
Python 判断 有向图 是否有环的实例讲解
2018/02/01 Python
Django密码存储策略分析
2020/01/09 Python
Python基于tkinter canvas实现图片裁剪功能
2020/11/05 Python
HTML5 video视频字幕的使用和制作方法
2018/05/03 HTML / CSS
爱尔兰电脑、家电和家具购物网站:Buy It Direct
2019/07/09 全球购物
AP澳洲中文网:澳洲正品直邮,包税收件无忧
2019/07/12 全球购物
写给女朋友的道歉信
2014/01/12 职场文书
采购求职信
2014/03/17 职场文书
找工作求职信
2014/07/07 职场文书
2015年度优秀员工自荐书
2015/03/06 职场文书
军训心得体会范文(2016最新篇)
2016/01/11 职场文书