首页 > 编程笔记 > JavaScript笔记

JS检测操作系统

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

所有教程

优秀文章