如何基于js判断浏览器版本


Posted in Javascript onFebruary 20, 2020

这篇文章主要介绍了如何基于js判断浏览器版本,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

浏览器类型判断

不考虑对 IE9 以下浏览器的判断

function getBrowserType(){
  var userAgent = navigator.userAgent; //取得浏览器的userAgent字符串
  var browser='unknown';
  if (userAgent.indexOf("IE")!=-1) {
    browser="IE";
  }else if(userAgent.indexOf('Firefox')!=-1){
    browser="Firefox";
  }else if(userAgent.indexOf('OPR')!=-1){
    browser="Opera";
  }else if(userAgent.indexOf('Chrome')!=-1){
    browser="Chrome";
  }else if(userAgent.indexOf('Safari')!=-1){
    browser="Safari";
  }else if(userAgent.indexOf('Trident')!=-1){
    browser='IE 11';
  }
  return browser;
}

测试

如何基于js判断浏览器版本

判断IE浏览器的版本

包含edge,ie11,10,9,8,7,6,5,4

// 获取IE版本
function IEVersion() {
  // 取得浏览器的userAgent字符串
  var userAgent = navigator.userAgent;
  // 判断是否为小于IE11的浏览器
  var isLessIE11 = userAgent.indexOf('compatible') > -1 && userAgent.indexOf('MSIE') > -1;
  // 判断是否为IE的Edge浏览器
  var isEdge = userAgent.indexOf('Edge') > -1 && !isLessIE11;
  // 判断是否为IE11浏览器
  var isIE11 = userAgent.indexOf('Trident') > -1 && userAgent.indexOf('rv:11.0') > -1;
  if (isLessIE11) {
    var IEReg = new RegExp('MSIE (\\d+\\.\\d+);');
    // 正则表达式匹配浏览器的userAgent字符串中MSIE后的数字部分,,这一步不可省略!!!
    IEReg.test(userAgent);
    // 取正则表达式中第一个小括号里匹配到的值
    var IEVersionNum = parseFloat(RegExp['$1']);
    if (IEVersionNum === 7) {
      // IE7
      return 7
    } else if (IEVersionNum === 8) {
      // IE8
      return 8
    } else if (IEVersionNum === 9) {
      // IE9
      return 9
    } else if (IEVersionNum === 10) {
      // IE10
      return 10
    } else {
      // IE版本<7
      return 6
    }
  } else if (isEdge) {
    // edge
    return 'edge'
  } else if (isIE11) {
    // IE11
    return 11
  } else {
    // 不是ie浏览器
    return -1
  }
}

判断浏览器型号及版本号

function getBroswerAndVersion(){
  var os = navigator.platform; 
  var userAgent = navigator.userAgent; 
  var info = ""; 
  var tempArray = ""; 
  //判断浏览器版本
  var isOpera = userAgent.indexOf("Opera") > -1; //判断是否Opera浏览器
  var isIE = userAgent.indexOf("compatible") > -1 && userAgent.indexOf("MSIE") > -1 && !isOpera; //判断是否IE浏览器
  var isEdge = userAgent.toLowerCase().indexOf("edge") > -1 && !isIE; //判断是否IE的Edge浏览器
  var isIE11 = (userAgent.toLowerCase().indexOf("trident") > -1 && userAgent.indexOf("rv") > -1); 

  if (/[Ff]irefox(\/\d+\.\d+)/.test(userAgent)) { 
    tempArray = /([Ff]irefox)\/(\d+\.\d+)/.exec(userAgent); 
    info += tempArray[1] + tempArray[2]; 
  } else if (isIE) { 

    var version = ""; 
    var reIE = new RegExp("MSIE (\\d+\\.\\d+);"); 
    reIE.test(userAgent); 
    var fIEVersion = parseFloat(RegExp["$1"]); 
    if (fIEVersion == 7) 
    { version = "IE7"; } 
    else if (fIEVersion == 8) 
    { version = "IE8"; } 
    else if (fIEVersion == 9) 
    { version = "IE9"; } 
    else if (fIEVersion == 10) 
    { version = "IE10"; } 
    else 
    { version = "0" } 

    info += version; 

  } else if (isEdge) { 
    info += "Edge"; 
  } else if (isIE11) { 
    info += "IE11"; 
  } else if (/[Cc]hrome\/\d+/.test(userAgent)) { 
    tempArray = /([Cc]hrome)\/(\d+)/.exec(userAgent); 
    info += tempArray[1] + tempArray[2]; 
  } else if (/[Vv]ersion\/\d+\.\d+\.\d+(\.\d)* *[Ss]afari/.test(userAgent)) { 
    tempArray = /[Vv]ersion\/(\d+\.\d+\.\d+)(\.\d)* *([Ss]afari)/.exec(userAgent); 
    info += tempArray[3] + tempArray[1]; 
  } else if (/[Oo]pera.+[Vv]ersion\/\d+\.\d+/.test(userAgent)) { 
    tempArray = /([Oo]pera).+[Vv]ersion\/(\d+)\.\d+/.exec(userAgent); 
    info += tempArray[1] + tempArray[2]; 
  } else { 
    info += "unknown"; 
  } 
  return info;
}

低于IE9版本提醒

<!--[if lte IE 9]>
<script>
  var bro = getBroswerAndVersion();
  if(bro=="IE5" || bro=="IE6" || bro=="IE7" || bro=="IE8" ){
    alert("浏览器版本过低!请升级至IE9以上");
  }
</script>
<![endif]-->

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

Javascript 相关文章推荐
js replace正则表达式应用案例讲解
Jan 17 Javascript
JS取request值以及自动执行使用示例
Feb 24 Javascript
Extjs根据条件设置表格某行背景色示例
Jul 23 Javascript
js实现简易的单数字随机抽奖(0-9)
Mar 19 Javascript
微信开发之调起摄像头、本地展示图片、上传下载图片实例
Dec 08 Javascript
angularJs-$http实现百度搜索时的动态下拉框示例
Feb 27 Javascript
vue-cli3.0如何使用CDN区分开发、生产、预发布环境
Nov 22 Javascript
微信小程序 搜索框组件代码实例
Sep 06 Javascript
JavaScript实现多文件下载方法解析
Aug 07 Javascript
jQuery实现影院选座订座效果
Apr 13 jQuery
详解如何在Canvas中添加事件的方法
Apr 17 Javascript
React Hook用法示例详解(6个常见hook)
Apr 28 Javascript
微信小程序webSocket的使用方法
Feb 20 #Javascript
Javascript Worker子线程代码实例
Feb 20 #Javascript
vue中音频wavesurfer.js的使用方法
Feb 20 #Vue.js
Javascript原生ajax请求代码实例
Feb 20 #Javascript
webpack中的模式(mode)使用详解
Feb 20 #Javascript
jquery向后台提交数组的代码分析
Feb 20 #jQuery
koa-passport实现本地验证的方法示例
Feb 20 #Javascript
You might like
phpfans留言版用到的数据操作类和分页类
2007/01/04 PHP
php环境配置 php5 MySQL5 apache2 phpmyadmin安装与配置图文教程
2007/03/16 PHP
PHP 无限分类三种方式 非函数的递归调用!
2011/08/26 PHP
php计算两个整数的最大公约数常用算法小结
2015/03/05 PHP
php版微信数据统计接口用法示例
2016/10/12 PHP
基于Web标准的UI组件 — 树状菜单(2)
2006/09/18 Javascript
利用腾讯的ip地址库做ip物理地址定位
2010/07/24 Javascript
JSONP 跨域共享信息
2012/08/16 Javascript
EXTjs4.0的store的findRecord的BUG演示代码
2013/06/08 Javascript
Javascript基础教程之数据类型 (数值 Number)
2015/01/18 Javascript
Angularjs 自定义服务的三种方式(推荐)
2016/08/02 Javascript
jQuery组件easyui基本布局实现代码
2016/08/25 Javascript
JQuery实现文字无缝滚动效果示例代码(Marquee插件)
2017/03/07 Javascript
vue使用高德地图点击下钻上浮效果的实现思路
2019/10/12 Javascript
JS document文档的简单操作完整示例
2020/01/13 Javascript
[01:06:59]完美世界DOTA2联赛PWL S2 Magma vs FTD 第一场 11.29
2020/12/02 DOTA
python快速排序代码实例
2013/11/21 Python
python Flask实现restful api service
2017/12/04 Python
Python简单实现socket信息发送与监听功能示例
2018/01/03 Python
Python基于列表模拟堆栈和队列功能示例
2018/01/05 Python
Python动刷新抢12306火车票的代码(附源码)
2018/01/24 Python
浅谈python爬虫使用Selenium模拟浏览器行为
2018/02/23 Python
python爬虫简单的添加代理进行访问的实现代码
2019/04/04 Python
Python使用tkinter模块实现推箱子游戏
2019/10/08 Python
django-crontab实现服务端的定时任务的示例代码
2020/02/17 Python
如何在keras中添加自己的优化器(如adam等)
2020/06/19 Python
电子商务专业推荐信范文
2013/12/02 职场文书
《听鱼说话》教学反思
2014/02/15 职场文书
作文批改评语大全
2014/04/23 职场文书
吨的认识教学反思
2014/04/27 职场文书
邹越感恩父母演讲稿
2014/08/28 职场文书
党员对照检查材料
2014/09/22 职场文书
跑出一片天观后感
2015/06/08 职场文书
2015国庆节66周年标语
2015/07/30 职场文书
python基础之类属性和实例属性
2021/10/24 Python
Spring Boot 实现 WebSocket
2022/04/30 Java/Android