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 相关文章推荐
关于B/S判断浏览器断开的问题讨论
Oct 29 Javascript
Ext 今日学习总结
Sep 19 Javascript
js滚动条回到顶部的代码
Dec 06 Javascript
简单实用jquery版三级联动select示例
Jul 04 Javascript
js中arguments的用法(实例讲解)
Nov 30 Javascript
javascript的push使用指南
Dec 05 Javascript
在Node.js应用中读写Redis数据库的简单方法
Jun 30 Javascript
简单的JS轮播图代码
Jul 18 Javascript
JavaScript实现翻页功能(附效果图)
Feb 16 Javascript
浅谈JavaScript面向对象--继承
Mar 20 Javascript
vue实现配置全局访问路径头(axios)
Nov 01 Javascript
js实现双色球效果
Aug 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
再次研究下cache_lite
2007/02/14 PHP
PHP与SQL注入攻击[一]
2007/04/17 PHP
解析php php_openssl.dll的作用
2013/07/01 PHP
php实现parent调用父类的构造方法与被覆写的方法
2015/02/11 PHP
Thinkphp 框架扩展之应用模式实现方法分析
2020/04/27 PHP
JSQL 基于客户端的成绩统计实现方法
2010/05/05 Javascript
picChange 图片切换特效的函数代码
2010/05/06 Javascript
jquery提升性能最佳实践小结
2010/12/06 Javascript
根据IP的地址,区分不同的地区,查看不同的网站页面的js代码
2013/02/26 Javascript
什么是cookie?js手动创建和存储cookie
2014/05/27 Javascript
基于NodeJS的前后端分离的思考与实践(一)全栈式开发
2014/09/26 NodeJs
JavaScript中提前声明变量或函数例子
2014/11/12 Javascript
JQuery.get提交页面不跳转的解决方法
2015/01/13 Javascript
被遗忘的javascript的slice() 方法
2015/04/20 Javascript
基于jquery插件实现拖拽删除图片功能
2020/08/27 Javascript
JavaScript 函数模式详解及示例
2016/09/07 Javascript
jQuery实用密码强度检测
2017/03/02 Javascript
详解vue微信网页授权最终解决方案
2019/06/16 Javascript
在Vue中实现随hash改变响应菜单高亮
2020/03/09 Javascript
js实现超级玛丽小游戏
2020/03/18 Javascript
微信小程序报错: thirdScriptError的错误问题
2020/06/19 Javascript
nuxt静态部署打包相对路径操作
2020/11/06 Javascript
[07:25]DOTA2-DPC中国联赛2月5日Recap集锦
2021/03/11 DOTA
Python使用openpyxl读写excel文件的方法
2017/06/30 Python
Python2.7编程中SQLite3基本操作方法示例
2017/08/09 Python
如何使用Python调整图像大小
2020/09/26 Python
香港通票:Hong Kong Pass
2019/02/26 全球购物
惠而浦美国官网:Whirlpool.com
2021/01/19 全球购物
如何理解transaction事务的概念
2015/05/27 面试题
网络工程师个人的自我评价范文
2013/10/01 职场文书
2014年五四青年节演讲比赛方案
2014/04/22 职场文书
教师党员学习群众路线心得体会
2014/11/04 职场文书
新闻稿标题
2015/07/18 职场文书
采购部2015年度工作总结
2015/07/24 职场文书
2016年党员公开承诺书格式范文
2016/03/24 职场文书
Java数组与堆栈相关知识总结
2021/06/29 Java/Android