js獲取瀏覽器內核、類型、版本以及系統類型


正則表達式:

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中測試通過。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM