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 相关文章推荐
表单提交验证类
Jul 14 Javascript
正负小数点后两位浮点数实现原理及代码
Sep 06 Javascript
jQuery源码解读之hasClass()方法分析
Feb 20 Javascript
原生JavaScript编写俄罗斯方块
Mar 30 Javascript
JavaScript获取网页表单action属性的方法
Apr 02 Javascript
详解Javascript继承的实现
Mar 25 Javascript
JS实现动态增加和删除li标签行的实例代码
Oct 16 Javascript
PHP获取当前页面完整URL的方法
Dec 02 Javascript
JavaScript对象引用与赋值实例详解
Mar 15 Javascript
javascript数组去重方法总结(推荐)
Mar 20 Javascript
Vue路由之JWT身份认证的实现方法
Aug 26 Javascript
vue中的循环对象属性和属性值用法
Sep 04 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
火影忍者:三大瞳力之一的白眼,为什么没有写轮眼那么出色?
2020/03/02 日漫
php eval函数一句话木马代码
2015/05/21 PHP
PHP 输出缓冲控制(Output Control)详解
2016/08/25 PHP
PHP自动生成缩略图函数的源码示例
2019/03/18 PHP
laravel 解决Eloquent ORM的save方法无法插入数据的问题
2019/10/21 PHP
jQuery live
2009/05/15 Javascript
原生Js页面滚动延迟加载图片实现原理及过程
2013/06/24 Javascript
zTree插件之多选下拉菜单实例代码
2013/11/06 Javascript
js获取元素相对窗口位置的实现代码
2014/09/28 Javascript
Javascript Memoizer浅析
2014/10/16 Javascript
浅谈JSON中stringify 函数、toJosn函数和parse函数
2015/01/26 Javascript
jquery常用函数与方法汇总
2015/09/01 Javascript
前端框架Vue.js中Directive知识详解
2016/09/12 Javascript
微信小程序开发之选项卡(窗口底部TabBar)页面切换
2017/04/12 Javascript
AngularJs 最新验证手机号码的实例,成功测试通过
2017/11/26 Javascript
微信小程序实现城市列表选择
2018/06/05 Javascript
Vue.js构建你的第一个包并在NPM上发布的方法步骤
2019/05/01 Javascript
vue中watch和computed的区别与使用方法
2020/08/23 Javascript
vue2.0 watch里面的 deep和immediate用法说明
2020/10/30 Javascript
python3使用pandas获取股票数据的方法
2018/12/22 Python
python selenium爬取斗鱼所有直播房间信息过程详解
2019/08/09 Python
python 计算积分图和haar特征的实例代码
2019/11/20 Python
python 多维高斯分布数据生成方式
2019/12/09 Python
Pytorch DataLoader 变长数据处理方式
2020/01/08 Python
html5 迷宫游戏(碰撞检测)实例一
2013/07/25 HTML / CSS
加拿大在线旅游公司:Flighthub
2019/03/11 全球购物
C,C++的几个面试题小集
2013/07/13 面试题
程序员经常用到的UNIX命令
2015/04/13 面试题
研究生自荐信
2013/10/09 职场文书
货代行业个人求职简历的自我评价
2013/10/22 职场文书
旅游文化节策划方案
2014/06/06 职场文书
国际残疾人日广播稿范文
2014/10/09 职场文书
入党积极分子自我批评思想汇报
2014/10/10 职场文书
整改报告怎么写
2014/11/06 职场文书
2015年幼儿园大班工作总结
2015/04/25 职场文书
Redis IP地址的绑定的实现
2021/05/08 Redis