正则表达式:

var rsys = /\b(windows|win32|macintosh|mac os x|adobeair|linux|unix)\b/;
var rkn = /\b(opera|chrome|webkit|safari|msie|firefox|gecko)\b(\s*(version|rv:|\/)*(\d+(\.\d+)*))?/g;

准备:

var r = {}, ua = navigator.userAgent.toLowerCase();

代码:

ua.replace(rsys, function (match, value) {
var object = {
       isWinSys: "win",
       isMacSys: "mac",
       isAirSys: "air",
       isUnixSys: "unix",
       isLinuxSys: "linux"
     };
for (var i in object) {
r[i] = value.indexOf(object[i]) > -1;
}
});
ua.replace(rkn, function (match, type, all, rv, version) {
     //match:匹配内容,type:内核类型,all:匹配符以及版本号,rv:匹配符,version:版本号
r["is" + type.charAt(0).toUpperCase() + type.slice(1) + "Kn"] =
     r["is" + type.charAt(0).toUpperCase() + type.slice(1) + "Bro"] = version || true;
if (type === "safari") {
if (/applewebkit\/4/.test(ua)) {
r["isSafariKn"] = 2;
}
}
});if (r.isChromeBro) {
r.isSafariBro = false;
}
if (r.isFirefoxBro) {
if (r.isChromeBro || r.isSafariBro || r.isMsieBro) {
r.isFirefoxBro = false;
}
}   
  r.isWebkitBro = r.isGeckoBro = false;//修复   
  r.isBrowse32Bit = navigator.platform == "Win32";//是否为32位浏览器 
  r.isCompatMode = document.compatMode == "CSS1Compat";//是否处于兼容性模式

1、后缀说明:Kn(kernel:内核),Bro(browser:浏览器),Sys(System:系统)。

2、值说明:优先显示版本号,若没有检测到对应的版本号,则默认为真。

3、已在Windows系统下,chrome、firefox、msie中测试通过。

js获取浏览器内核、类型、版本以及系统类型的更多相关文章

  1. js获取浏览器信息及版本(兼容IE)

    获取浏览器信息方法有很多种,但是要是兼容ie旧版本就有点麻烦了,因为很多方法在旧版本ie是不支持的,所以ie我做了单独处理,但是目前还有小问题,就是想显示QQ浏览器,搜狗浏览器..这样的,这样还实现不 ...

  2. JS获取浏览器名和版本信息

    Navigator 对象包含有关浏览器的信息. Navigator 对象属性和方法: <html> <head> <title>JS完整获取浏览器信息</ti ...

  3. js 获取浏览器内核

    <script language="JavaScript" type="text/javascript">    var browser = {   ...

  4. js获取浏览器内核判断终端(是QQ打开还是QQ浏览器打开)

    var browser ={ versions: function() { var u = navigator.userAgent, var ua = navigator.userAgent.toLo ...

  5. js判断浏览器内核和版本(包括手机端设备)

    var X, xue;xue = xue || function(expr, fn) {    return xue.dom ? xue.dom(expr, fn) : {};};X = xue;wi ...

  6. js获取浏览器类型和版本信息

    bro () { let broName = 'Runing' let strStart = 0 let strStop = 0 let temp = '' let userAgent = windo ...

  7. js获取浏览器版本信息整理

    一.Navigator 对象 JavaScript Navigator 对象包含了有关访问者浏览器的所有信息.接下来我们学习 Navigator 对象的两个属性. appName 保存浏览器类型 ap ...

  8. js get browser vertion (js获取浏览器信息版本)

    1问题:js get browser vertion (js获取浏览器信息版本) 2解决方案 Copy this script into your JavaScript files. It works ...

  9. JS获取浏览器类型和版本号

    JS获取浏览器类型和版本号,增加了IE11的判断. 2015/7/5更新: 简化代码逻辑 var zbrowser = {} var ua = navigator.userAgent.toLowerC ...

随机推荐

  1. 1Z0-053 争议题目解析695

    1Z0-053 争议题目解析695 考试科目:1Z0-053 题库版本:V13.02 题库中原题为: 695.Identify two options that Oracle recommends w ...

  2. Java中的反射和注解

    前言 在Java中,反射机制和注解机制一直是一个很重要的概念,那么他们其中的原理是怎么样呢,我们不仅仅需要会使用,更要知其然而之所以然. 目录 反射机制 反射如何使用 注解定义 注解机制原理 注解如何 ...

  3. Sql Server函数全解(三)数据类型转换函数和文本图像函数

    一:数据类型转换函数 在同时处理不同数据类型的值时,SQL Server一般会自动进行隐士类型转换.对于数据类型相近的值是有效的,比如int和float,但是对于其它数据类型,例如整型和字符类型,隐士 ...

  4. [AngularJS] AngularJS系列(6) 中级篇之ngResource

    目录 $http ngResource $http几乎是所有ng开发中,都会用到的服务.本节将重点说下$http 与 ngResource $http 使用:$http(config); 参数: me ...

  5. Nancy之静态文件处理

    今天我们来谈谈Nancy中的静态文件(JavaScript,CSS等)该如何处理. 在前面的Demo中,我们也已经用到了这一块的内容, 但并没有深入理解,只是停留在使用的层面上. 在进入今天的正题之前 ...

  6. PetaPoco4.0 实体某个字段不赋值会更新成null解决方案

    最新用PetaPoco4.0做项目发现有个需求,就是比如说:在mvc表单中,只显示部分字段,一个表单还有其他状态等字段,没有显示到mvc页面上 但是当MVC收集表单提交更新的时候,会发现会把数据库中的 ...

  7. 基于CkEditor实现.net在线开发之路(8)Vs开发怎么配置

    前段时间有一园友问我,怎么将组件放置到VS开发工具的工具箱中,用vs开发工具配合CKEditor实现在线.net开发呢? 第一步:登陆http://www.zjt-lab.com:8090/login ...

  8. js正则表达式中test,exec,match方法的区别

    test test 返回 Boolean,查找对应的字符串中是否存在模式.var str = "1a1b1c";var reg = new RegExp("1." ...

  9. linux命令大全之ln命令详解(创建软链接和硬链接)

    ln是linux中又一个非常重要命令,它的功能是为某一个文件在另外一个位置建立一个同步的链接,分为软链接.硬链接.软链接相当于windows的快捷方式,下面是使用方法和示例   ln是linux中又一 ...

  10. UDS(ISO14229-2006) 汉译(No.4 术语和缩写)

    A_PCI                    Application layer Protocol Control Information应用层协议控制消息. A_PDU              ...