navigator

参考

1.1、navigator.appCodeName

浏览器的代号。

各个浏览器对应的值,如下表:

浏览器取值
FirefoxMozilla
ChromeMozilla
SafariMozilla
IEMozilla
360极速模式Mozilla
360兼容模式Mozilla
AndroidMozilla
iOSMozilla
1.2、navigator.appName

浏览器的名称。

各个浏览器对应的值,如下表:

浏览器取值
FirefoxNetscape
ChromeNetscape
SafariNetscape
IEMicrosoft Internet Explorer
360极速模式Netscape
360兼容模式Netscape
AndroidNetscape
iOSNetscape

显然,用此字段,只能判断出是不是IE浏览器。

1.3、navigator.appVersion

浏览器的版本。

各个浏览器对应的值,如下表:

浏览器操作系统位数取值
SafarimacOS645.0 (Macintosh; Intel macOS 10_12_3) AppleWebKit/602.4.8 (KHTML, like Gecko) Version/10.0.3 Safari/602.4.8
SafariiPhone645.0 (iPhone; CPU iPhone OS 10_2_1 like macOS) AppleWebKit/602.4.6 (KHTML, like Gecko) Version/10.0 Mobile/14D27 Safari/602.1
SafariiPad645.0 (iPad; CPU OS 9_3_5 like macOS) AppleWebKit/601.1.46 (KHTML, like Gecko) Version/9.0 Mobile/13G36 Safari/601.1
FirefoxmacOS645.0 (Macintosh)
FirefoxUbuntu645.0 (X11)
ChromeWmacOS645.0 (Macintosh; Intel macOS 10_12_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36
ChromeWindow XP325.0 (Windows NT 5.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.75 Safari/537.36
AndroidAndroid325.0 (Linux; U; Android 4.1.1; en-us; Google-Nexus-S-4.1.1-API-16-480x800 Build/JRO03S) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30

navigator.appVersion的前3个字符,正好是一个浮点数。

IE4、IE5、IE6中的获得的版本号都是4.0。

可以用parseFloat()函数获得该浮点数。如下:

var version = parseFloat(navigator.appVersion);
1.4、navigator.userAgent

浏览器的详细信息,包含了操作系统信息。

各个浏览器对应的值,如下表:

浏览器操作系统位数取值
SafarimacOS64Mozilla/5.0 (Macintosh; Intel macOS 10_12_3) AppleWebKit/602.4.8 (KHTML, like Gecko) Version/10.0.3 Safari/602.4.8
SafariiPhone64Mozilla/5.0 (iPhone; CPU iPhone OS 10_2_1 like macOS) AppleWebKit/602.4.6 (KHTML, like Gecko) Version/10.0 Mobile/14D27 Safari/602.1
SafariiPad64Mozilla/5.0 (iPad; CPU OS 9_3_5 like macOS) AppleWebKit/601.1.46 (KHTML, like Gecko) Version/9.0 Mobile/13G36 Safari/601.1
FirefoxmacOS64Mozilla/5.0 (Macintosh; Intel macOS 10.12; rv:51.0) Gecko/20100101 Firefox/51.0
FirefoxUbuntu64Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:51.0) Gecko/20100101 Firefox/51.0
ChromemacOS64Mozilla/5.0 (Macintosh; Intel macOS 10_12_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36
ChromeWindow XP32Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.75 Safari/537.36
AndroidAndroid32Mozilla/5.0 (Linux; U; Android 4.1.1; en-us; Google-Nexus-S-4.1.1-API-16-480x800 Build/JRO03S) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30
1.5、navigator.platform

包含了用户的CPU信息。

各个浏览器对应的值,如下表:

浏览器操作系统位数取值
SafarimacOS64MacIntel
SafariiPhone64iPhone
SafariiPad64iPad
FirefoxmacOS64MacIntel
FirefoxUbuntu64Linux x86_64
ChromemacOS64MacIntel
ChromeWindow XP32Win32
AndroidAndroid32Linux i686
1.5、navigator.language

客户端语言。先转成小写字母再比较这样保险一些。

en-us:英语

zh-cn:中文

1.6、navigator.cookieEnabled

检测浏览器是否允许使用cookie,boolean值。

1.7、检测浏览器

我们可以根据navigator.appName可以判断是不是IE浏览器, 因为对于前端开发人员来说,IE浏览器可以说是一个刺头儿,问题最多。有些CMS系统通常只是针对特定用户的, 让他们使用特定的浏览器,不要使用IE浏览器,可以减少我们适配IE浏览器的时间。缩短开发时间。

var browser = navigator.appName;
var version = parseFloat(navigator.appVersion);

if (browser === "Microsoft Internet Explorer") {
    //IE9以下的IE浏览器给予提示
    if(version <= 4) {
        alert("您使用的是IE浏览器!请使用Google-Chrome、Firefox等浏览器");
    }
}
1.8、检测客户端操作系统

我们可以根据navigator.userAgent提取客户端操作系统信息,如下:

var userAgent = navigator.userAgent.toLowercase();

function isMac() {
    return userAgent.indexOf('macintosh') > -1;
}

function isLinux() {
    return userAgent.indexOf('linux') > -1 &&
           userAgent.indexOf('x11') > -1;
}

function isWindows() {
    return userAgent.indexOf('windows') > -1;
}

function isIOS() {
    return userAgent.indexOf('iphone') > -1 ||
           userAgent.indexOf('ipad') > -1);
}

function isIPhone() {
    return userAgent.indexOf('iphone') > -1;
}

function isIPad() {
    return userAgent.indexOf('ipad') > -1;
}

function isAndroid() {
    return userAgent.indexOf('android') > -1;
}