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 相关文章推荐
返回对象在当前级别中是第几个元素的实现代码
Jan 20 Javascript
原生js的弹出层且其内的窗口居中
May 14 Javascript
自定义刻度jQuery进度条及插件
Sep 02 Javascript
Node.js本地文件操作之文件拷贝与目录遍历的方法
Feb 16 Javascript
AngularJS中使用HTML5手机摄像头拍照
Feb 22 Javascript
在Html中使用Requirejs进行模块化开发实例详解
Apr 15 Javascript
巧用Javascript的逻辑运算符
Dec 02 Javascript
AngularJS自定义控件实例详解
Dec 13 Javascript
JS对象与JSON互转换、New Function()、 forEach()、DOM事件流等js开发基础小结
Aug 10 Javascript
基于vue2.0实现简单轮播图
Nov 27 Javascript
Layui组件Table绑定行点击事件和获取行数据的方法
Aug 19 Javascript
js实现自定义滚动条的示例
Oct 27 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
PHPMailer邮件发送的实现代码
2013/05/04 PHP
一个简洁的PHP可逆加密函数(分享)
2013/06/06 PHP
php.ini save_handler 修改不生效的解决办法
2014/07/22 PHP
php中实现字符串翻转的方法
2017/02/22 PHP
jQuery入门问答 整理的几个常见的初学者问题
2010/02/22 Javascript
js脚本分页代码分享(7种样式)
2015/08/19 Javascript
JS和jQuery使用submit方法无法提交表单的原因分析及解决办法
2016/05/17 Javascript
JS闭包与延迟求值用法示例
2016/12/22 Javascript
关于页面刷新vuex数据消失问题解决方案
2017/07/03 Javascript
Js自定义多选框效果的实例代码
2017/07/05 Javascript
js实现轮播图的两种方式(构造函数、面向对象)
2017/09/30 Javascript
使用vue重构资讯页面的实例代码解析
2019/11/26 Javascript
微信小程序canvas实现签名功能
2021/01/19 Javascript
django 开发忘记密码通过邮箱找回功能示例
2018/04/17 Python
Python多线程应用于自动化测试操作示例
2018/12/06 Python
Python项目 基于Scapy实现SYN泛洪攻击的方法
2019/07/23 Python
python matplotlib库直方图绘制详解
2019/08/10 Python
python类中super() 的使用解析
2019/12/19 Python
使用Python打造一款间谍程序的流程分析
2020/02/21 Python
Python-for循环的内部机制
2020/06/12 Python
详解python百行有效代码实现汉诺塔小游戏(简约版)
2020/10/30 Python
CSS3实战第一波 让我们尽情的圆角吧
2010/08/27 HTML / CSS
HTML+CSS+JavaScript实现图片3D展览的示例代码
2020/10/12 HTML / CSS
美国知名的女性服饰品牌:LOFT(洛芙特)
2016/08/05 全球购物
英国户外装备商店:Ultimate Outdoors
2019/05/07 全球购物
ANINE BING官方网站:奢华的衣橱基本款和时尚永恒的单品
2019/11/26 全球购物
JSF面试题:Jsf中的核心类用那些?有什么作用?LiftCycle六大生命周期是什么?
2014/07/17 面试题
一套Delphi的笔试题二
2013/05/11 面试题
中医药大学毕业生自荐信
2013/11/08 职场文书
技校毕业生个人学习的自我评价
2014/02/21 职场文书
建议书的格式
2014/05/12 职场文书
五年级学生评语大全
2014/12/26 职场文书
公司的力量观后感
2015/06/05 职场文书
2016年八一建军节活动总结
2016/04/05 职场文书
php字符串倒叙
2021/04/01 PHP
python神经网络ResNet50模型
2022/05/06 Python