zoukankan      html  css  js  c++  java
  • js获取浏览器内核、类型、版本以及系统类型

    正则表达式:

    var rsys = /(windows|win32|macintosh|mac os x|adobeair|linux|unix)/;
    var rkn = /(opera|chrome|webkit|safari|msie|firefox|gecko)(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中测试通过。

    完美,只是因为简单。
  • 相关阅读:
    C# 任务、线程、同步(五)
    C# 任务、线程、同步(四)
    C# 得到本周的第一天和最后一天
    C# Datatable 转实体对象
    C# 任务、线程、同步(三)
    apache的工作模式 和 最大连接数设置
    MySQL中的配置参数interactive_timeout和wait_timeout(可能导致过多sleep进程的两个参数)
    上传图片到另外的服务器
    Brackets
    centos 安装mysql 5.5.12
  • 原文地址:https://www.cnblogs.com/jschar/p/6169275.html
Copyright © 2011-2022 走看看