正则表达式:

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 争议题目解析694

    1Z0-053 争议题目解析694 考试科目:1Z0-053 题库版本:V13.02 题库中原题为: 694.As part of archiving the historical data, you ...

  2. 如何使用SOIL在VS2012的 C++环境下显示图片

    先看下效果. 这是一个很无聊的功能....首先说下,我做这个功能的初衷并不是为了实现在控制台中显示图片...(这貌似很无聊) 而是因为自己想做用C做一个游戏:http://q.cnblogs.com/ ...

  3. Win8.1安装mysql-installer-community-5.6.21.0.mis

    引言 我本机是win8.1,在官网下载的这个安装是32位和64位都能装,安装步骤参考:http://jingyan.baidu.com/article/67662997305dcd54d51b84d4 ...

  4. 关于一道PHP面试题的解法

    参照一个int型数组,如int[] a1=new int[]{10,9,10,20,15,3,9,8,7,1,1},编写一个方法,要求输出不重复,且降序的拼接字符串(连接字符用逗号),如上数组,输出的 ...

  5. [Java 基础]控制语句

    选择语句 if语句 if语句会判断括号中的条件是否成立,如果成立则执行if语句中的代码块,否则跳过代码块继续执行. 语法 if(布尔表达式) {    //如果布尔表达式为true将执行的语句 } 例 ...

  6. 初学Python遇到的问题一二

    这篇文章只是学Python最最最基础的部分知识,如果你已经有过python经验,哪怕就一点点经验,或许你都遇到过,但相信这些问题对你来说早已不算问题了,所以请跳过吧,用你的时间去学习更多其他的知识就好 ...

  7. HTTP首部

    前面有几篇博文介绍了HTTP协议.HTTP请求方法详解.Javascript中Cookie的那些事儿.HTTPS,今天我们来聊一聊关于HTTP首部的那些事儿 HTTP协议的请求和响应报文中肯定包含HT ...

  8. 写个C#命令行参数解析的小工具

    最近测试工作做的比较多因此时常要创建一些控制台类型的应用程序.因为程序有不同的参数开关,需要在程序启动的时候通过命令行来给程序传递各种开关和参数.直接操作args有些不方便,所以就写了个解析参数的小工 ...

  9. Parallel并行编程初步

    Parallel并行编程可以让我们使用极致的使用CPU.并行编程与多线程编程不同,多线程编程无论怎样开启线程,也是在同一个CPU上切换时间片.而并行编程则是多CPU核心同时工作.耗时的CPU计算操作选 ...

  10. C# foreach 中获取索引index的方法

    方法一: int i = 0; foreach (var item in arr) { i++; } 方法二: foreach (var item in arr) { int index = arr. ...