navigator.userAgent 返回值一般都會包含作業系統的基本資訊,不過這些資訊比較散亂,沒有統一的規則。使用者可以檢測一些更為通用的資訊,如檢測是否為 Windows 系統,或者為 Macintosh 系統,而不去分辨作業系統的版本號。
例如,如果僅檢測通用資訊,那麼所有 Windows 版本的作業系統都會包含 “Win”字串,所有 Macintosh 版本的作業系統都會包含“Mac”字串,所有 Unix 版本的作業系統都會包含有“X11”,而 Linux 作業系統會同時包含“X11”和“Linux”。
範例
通過下面方法可以快速檢測用戶端資訊中是否包含上述字串。
['Win', 'Mac', 'X11', 'Linux'].forEach (function (t) {
(t === 'X11') ? t = 'Unix' : t; //處理Unix系統的字串
navigator['is' + t] = function () { //為navigator物件擴充套件專用系統檢測方法
return navigator.userAgent.indexOf(t) != -1; //檢測是否包含特定字串
};
});
console.log(navigator.isWin()); //true
console.log(navigator.isMac()); //false
console.log(navigator.isLinux()); //false
console.log(navigator.isUnix()); //false