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 相关文章推荐
JavaScript:Div层拖动效果实例代码
Aug 06 Javascript
JavaScript表单焦点自动切换代码
Jul 24 Javascript
移动端脚本框架Hammer.js
Dec 15 Javascript
手机端转换rem适应
Apr 01 Javascript
Angular.js中控制器之间的传值详解
Apr 24 Javascript
bootstrap的工具提示实例代码
May 17 Javascript
jquery.validate表单验证插件使用详解
Jun 21 jQuery
JavaScript实现简单的树形菜单效果
Jun 23 Javascript
zTree异步加载展开第一级节点的实现方法
Sep 05 Javascript
对angular4子路由&辅助路由详解
Oct 09 Javascript
操作按钮悬浮固定在微信小程序底部的实现代码
Aug 02 Javascript
JavaScript实现简单拖拽效果
Sep 15 Javascript
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 增加了对 .ZIP 文件的读取功能
2006/10/09 PHP
PHP把空格、换行符、中文逗号等替换成英文逗号的正则表达式
2014/05/04 PHP
php使用指定字符列表生成随机字符串的方法
2015/04/18 PHP
PHP中JSON的应用技巧
2015/10/10 PHP
基于PHP如何把汉字转化为拼音
2015/12/11 PHP
php实现计算百度地图坐标之间距离的方法
2016/05/05 PHP
Codeigniter里的无刷新上传的实现代码
2019/04/14 PHP
linux mint下安装phpstorm2020包括JDK部分的教程详解
2020/09/17 PHP
使用jQuery模板来展现json数据的代码
2010/10/22 Javascript
jQuery中ajax的使用与缓存问题的解决方法
2013/12/19 Javascript
js 通用订单代码
2013/12/23 Javascript
JQuery EasyUI 加载两次url的原因分析及解决方案
2014/08/18 Javascript
Javascript控制div属性动态变化实例分析
2015/10/08 Javascript
全面理解闭包机制
2016/07/11 Javascript
详解vue项目优化之按需加载组件-使用webpack require.ensure
2017/06/13 Javascript
Node.js环境下Koa2添加travis ci持续集成工具的方法
2017/06/19 Javascript
浅谈ES6新增的数组方法和对象
2017/08/08 Javascript
微信小程序删除处理详解
2017/08/16 Javascript
JavaScript实现三级级联特效
2017/11/05 Javascript
vue中的数据绑定原理的实现
2018/07/02 Javascript
[43:49]LGD vs CHAOS 2019国际邀请赛小组赛 BO2 第一场 8.15
2019/08/16 DOTA
python中常用的各种数据库操作模块和连接实例
2014/05/29 Python
Python多线程编程(一):threading模块综述
2015/04/05 Python
Django实现登录随机验证码的示例代码
2018/06/20 Python
python抓取搜狗微信公众号文章
2019/04/01 Python
Python字典生成式、集合生成式、生成器用法实例分析
2020/01/07 Python
PyQt5 文本输入框自动补全QLineEdit的实现示例
2020/05/13 Python
详解Python IO口多路复用
2020/06/17 Python
Python 实现二叉查找树的示例代码
2020/12/21 Python
canvas实现飞机打怪兽射击小游戏的示例代码
2018/07/09 HTML / CSS
加拿大租车网站:Enterprise Rent-A-Car
2018/07/26 全球购物
英文版区域经理求职信
2013/10/23 职场文书
成人教育自我鉴定
2013/11/01 职场文书
公交公司毕业生求职信
2014/02/15 职场文书
ktv好的活动方案
2014/08/17 职场文书
浅谈Python响应式类库RxPy
2021/06/14 Python