正则表达式:

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. Macaca自动化测试之Android测试

    Macaca PC端 Web自动化测试非常类似于Selenium,而移动端自动化测试非常类似于Appium,如果你搭建过Appium环境,Macaca移动端环境的搭建将非常简单. 本文继承上一篇,关于 ...

  2. Cesium原理篇:4Web Workers剖析(2)

    What's the WebWorkers? 2008 年 W3C 制定出第一个 HTML5 草案中提出了工作线程(Web Worker)的概念,并且规范出 Web Worker 的三大主要特征:能够 ...

  3. 多个Activity相互调用和Intent

    MainActivity.java和OtherActivity.java的相互调用 首先MainActivity.java是Android程序自带的,新建一个类OtherActiviy extends ...

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

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

  5. 使用EDMX查询(EF基础系列15)

    EF支持三种类型的查询: 1.LINQ to Entities 2.Entity SQL 3.Native SQL 1.LINQ to Entities LINQ Method syntax: usi ...

  6. jQuery on()方法

    jQuery on()方法是官方推荐的绑定事件的一个方法. $(selector).on(event,childSelector,data,function,map) 由此扩展开来的几个以前常见的方法 ...

  7. C#基础知识五之abstract virtual关键字

    abstract 用关键字abstract修饰的类叫做抽象类,且只能作为基类,也不能实例化. 用abstract定义的抽象类中不一定只包含抽象方法 ,可以包含非抽象方法. abstract定义的方法一 ...

  8. jquery制作论坛或社交网站的每天打卡签到特效

    效果:http://hovertree.com/texiao/jquery/50/ 现在许多社区,购物等网站都设置签到功能,打开可以收获经验.虚拟币等,提高用户粘性,增加浏览量,是一个不错的功能.本文 ...

  9. 学C++的经验总结

    下面的是学C++时要注意的. 1.把C++当成一门新的语言学习(和C没啥关系!真的.): 2.看<Thinking In C++>,不要看<C++变成死相>: 3.看<T ...

  10. Java中,方法的重写、重载的区别,以及多态的实例

    首先我们要明白什么是重写和重载 重写(override):子类方法覆盖了父类的方法.    (类与类之间继承的关系) 例:父类代码 public class Deng { public void Qi ...