js检测浏览器版本、核心、是否移动端示例


Posted in Javascript onApril 24, 2014

检测浏览器版本、核心、系统和是否移动端

/**
 * check browser version
 * @authors K
 * @date    2014-04-11 14:48:39
 * @version 1
 */
/**
 * detect browser info with navigator userAgent
 * @return object browser info
 */
var browser = (function(){
  var userAgent = navigator.userAgent,
  ua = userAgent.toLowerCase(),
  browserList = {
    msie : /(?:msie\s|trident.*rv:)([\w.]+)/i,
    firefox : /Firefox\/([\w.]+)/i,
    chrome : /Chrome\/([\w.]+)/i,
    safari : /version\/([\w.]+).*Safari/i,
    opera : /(?:OPR\/|Opera.+version\/)([\w.]+)/i
  },
  kernels = {
    MSIE: /(compatible;\smsie\s|Trident\/)[\w.]+/i,
    Camino: /Camino/i,
    KHTML: /KHTML/i,
    Presto: /Presto\/[\w.]+/i,
    Gecko : /Gecko\/[\w.]+/i,
    WebKit: /AppleWebKit\/[\w.]+/i
  },
  browser = {
    kernel : 'unknow',
    version : 'unknow'
  }
  // 检测浏览器
  for(var i in browserList){
    var matchs = ua.match(browserList[i]);
    browser[i] = matchs ? true : false;
    if(matchs){
      browser.version = matchs[1];
    }
  }
  // 检测引擎
  for(var i in kernels){
    var matchs = ua.match(kernels[i]);
    if(matchs){
      browser.kernel = matchs[0];
    }
  }
  // 系统
  var os = ua.match(/(Windows\sNT\s|Mac\sOS\sX\s|Android\s|ipad.*\sos\s|iphone\sos\s)([\d._-]+)/i);
  browser.os = os!==null ? os[0] : false;
  // 是否移动端
  browser.mobile = ua.match(/Mobile/i)!==null ? true : false;
  return browser;
}());
Javascript 相关文章推荐
Jquery+WebService 校验账号是否已被注册的代码
Jul 12 Javascript
javascript利用初始化数据装配模版的实现代码
Nov 17 Javascript
javascript引用赋值(地址传值)用法实例
Jan 13 Javascript
js实现完美兼容各大浏览器的人民币大小写相互转换
Oct 29 Javascript
理解javascript定时器中的单线程
Feb 23 Javascript
jquery制做精致的倒计时特效
Jun 13 Javascript
从零开始学习Node.js系列教程四:多页面实现数学运算的client端和server端示例
Apr 13 Javascript
JS实现异步上传压缩图片
Apr 22 Javascript
详解vue.js下引入百度地图jsApi的两种方法
Jul 27 Javascript
Vue路由管理器Vue-router的使用方法详解
Feb 05 Javascript
JavaScript中reduce()的5个基本用法示例
Jul 19 Javascript
Vue-router中hash模式与history模式的区别详解
Dec 15 Vue.js
javascript模拟订火车票和退票示例
Apr 24 #Javascript
jquery 自定义容器下雨效果可将下雨图标改为其他
Apr 23 #Javascript
jquery map方法使用示例
Apr 23 #Javascript
js通过更改按钮的显示样式实现按钮的滑动效果
Apr 23 #Javascript
js Dialog 去掉右上角的X关闭功能
Apr 23 #Javascript
Jquery实现Div上下移动示例
Apr 23 #Javascript
JQuery为页面Dom元素绑定事件及解除绑定方法
Apr 23 #Javascript
You might like
php preg_replace替换实例讲解
2013/11/04 PHP
destoon整合ucenter后注册页面不跳转的解决方法
2014/06/21 PHP
PHP析构函数destruct与垃圾回收机制的讲解
2019/03/22 PHP
PHP文件操作简单介绍及函数汇总
2020/12/11 PHP
雄兵连第三季海报曝光,艾妮熙德成主角,蔷薇新造型
2021/03/09 国漫
JS中confirm,alert,prompt函数区别分析
2011/01/17 Javascript
Javascript浅谈之引用类型
2013/12/18 Javascript
JavaScript使用slice函数获取数组部分元素的方法
2015/04/06 Javascript
jQuery给元素添加样式的方法详解
2015/12/30 Javascript
通过正则表达式获取url中参数的简单实现
2016/06/07 Javascript
BootStrap 附加导航组件
2016/07/22 Javascript
jQuery如何解决IE输入框不能输入的问题
2016/10/08 Javascript
JS验证图片格式和大小并预览的简单实例
2016/10/11 Javascript
ASP.NET jquery ajax传递参数的实例
2016/11/02 Javascript
vue.js简单配置axios的方法详解
2017/12/13 Javascript
详解webpack引用jquery(第三方模块)的三种办法
2019/08/21 jQuery
node事件循环和process模块实例分析
2020/02/14 Javascript
解决VUE项目localhost端口服务器拒绝连接,只能用127.0.0.1的问题
2020/08/14 Javascript
[40:04]Secret vs Infamous 2019国际邀请赛淘汰赛 败者组 BO3 第二场 8.23
2019/09/05 DOTA
简单介绍利用TK在Python下进行GUI编程的教程
2015/04/13 Python
在Python中使用lambda高效操作列表的教程
2015/04/24 Python
Python BS4库的安装与使用详解
2018/08/08 Python
Python3 max()函数基础用法
2019/02/19 Python
关于python字符串方法分类详解
2019/08/20 Python
使用OpenCV实现仿射变换—旋转功能
2019/08/29 Python
pyqt5 QScrollArea设置在自定义侧(任何位置)
2019/09/25 Python
Python argparse模块应用实例解析
2019/11/15 Python
Python如何批量获取文件夹的大小并保存
2020/03/31 Python
opencv之颜色过滤只留下图片中的红色区域操作
2020/06/05 Python
印度在线购买电子产品网站:Croma
2020/01/02 全球购物
英文自荐信格式
2013/11/28 职场文书
股权转让意向书
2014/04/01 职场文书
党员四风剖析材料
2014/08/27 职场文书
2015年普法依法治理工作总结
2015/05/26 职场文书
2016年党建工作简报
2015/11/26 职场文书
导游词之舟山普陀山
2019/11/06 职场文书