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中的不可见数据类型
Dec 02 Javascript
javascript/jquery获取地址栏url参数的方法
Mar 05 Javascript
from表单多个按钮提交用onclick跳转不同action
Apr 24 Javascript
node.js中的Socket.IO使用实例
Nov 04 Javascript
用原生js统计文本行数的简单示例
Aug 19 Javascript
BootStrap Validator对于隐藏域验证和程序赋值即时验证的问题浅析
Dec 01 Javascript
AngularJs中 ng-repeat指令中实现含有自定义指令的动态html的方法
Jan 19 Javascript
JavaScript设计模式之观察者模式实例详解
Jan 16 Javascript
vue-cli3 karma单元测试的实现
Jan 18 Javascript
ES6 Symbol在对象中的作用实例分析
Jun 06 Javascript
Vue+Spring Boot简单用户登录(附Demo)
Nov 12 Javascript
详解如何使用Node.js实现热重载页面
May 06 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
PHP4中实现动态代理
2006/10/09 PHP
用PHP 4.2书写安全的脚本
2006/10/09 PHP
PHP中break及continue两个流程控制指令区别分析
2011/04/18 PHP
用Json实现PHP与JavaScript间数据交换的方法详解
2013/06/20 PHP
让ThinkPHP支持大小写url地址访问的方法
2014/10/31 PHP
Windows2003下php5.4安装配置教程(Apache2.4)
2016/06/30 PHP
PHP面向对象之工作单元(实例讲解)
2017/06/26 PHP
javascript cookie解码函数(兼容ff)
2008/03/17 Javascript
javascript控制Div层透明属性由浅变深由深变浅逐渐显示
2013/11/12 Javascript
基于javascript的JSON格式页面展示美化方法
2014/07/02 Javascript
js中获取键盘事件的简单实现方法
2016/10/10 Javascript
基于zepto.js实现手机相册功能
2017/07/11 Javascript
Mint UI 基于 Vue.js 移动端组件库
2017/11/07 Javascript
node.js文件上传重命名以及移动位置的示例代码
2018/01/19 Javascript
vue-cli配置环境变量的方法
2018/07/09 Javascript
关于vue v-for循环解决img标签的src动态绑定问题
2018/09/18 Javascript
js实现登录时记住密码的方法分析
2020/04/05 Javascript
[36:52]DOTA2真视界:基辅特锦赛总决赛
2017/05/21 DOTA
python重试装饰器示例
2014/02/11 Python
Python合并两个字典的常用方法与效率比较
2015/06/17 Python
利用aardio给python编写图形界面
2017/08/21 Python
你眼中的Python大牛 应该都有这份书单
2017/10/31 Python
Python自定义线程类简单示例
2018/03/23 Python
Python3 实现串口两进程同时读写
2019/06/12 Python
解决tensorflow由于未初始化变量而导致的错误问题
2020/01/06 Python
Python基于smtplib协议实现发送邮件
2020/06/03 Python
使用PyCharm安装pytest及requests的问题
2020/07/31 Python
Selenium之模拟登录铁路12306的示例代码
2020/07/31 Python
python之语音识别speech模块
2020/09/09 Python
BCBG官网:BCBGMAXAZRIA
2017/12/29 全球购物
英语专业毕业生自我鉴定
2013/11/09 职场文书
销售行政专员职责
2014/01/03 职场文书
基于tensorflow权重文件的解读
2021/05/26 Python
Windows下redis下载、redis安装及使用教程
2021/06/02 Redis
python基于turtle绘制几何图形
2021/06/15 Python
mysql sock文件存储了什么信息
2022/07/15 MySQL