Navigator 對(duì)象屬性
appCodeName屬性
功能:返回瀏覽器的代碼名。該屬性是一個(gè)只讀的字符串。
語(yǔ)法:navigator.appCodeName
總結(jié):在所有以Netscape代碼為基礎(chǔ)的瀏覽器中,它的值是"Mozilla"。為了兼容起見,在Microsoft的瀏覽器中,它的值也是"Mozilla",同時(shí)在safari在瀏覽器的console里運(yùn)行navigator.appCodeName得出的結(jié)果還是"Mozilla"。所以這個(gè)看起來(lái)并不實(shí)用,因?yàn)镮E、chrome、safari返回的都是“Mozilla”;
appName屬性
功能:返回所使用瀏覽器的名稱。該屬性是一個(gè)只讀的字符串。
語(yǔ)法:navigator.appName
總結(jié):由于兼容性問題,HTML5 規(guī)范允許該屬性返回 "Netscape" 。在chrome、safari的里面都是返回"Netscape"。該屬性并不一定能返回正確的瀏覽器名稱。在基于 Gecko 的瀏覽器 (例如 Firefox)和基于 WebKit 的瀏覽器(例如 Chrome 和 Safari)中,返回的瀏覽器名稱都是 "Netscape"。
appVersion屬性【已廢棄】
功能:返回瀏覽器的平臺(tái)和版本信息。該屬性是一個(gè)只讀的字符串。
語(yǔ)法:navigator.appVersion
總結(jié):它可能只包含一個(gè)版本數(shù)字,如 "5.0",還可能包含一些其他的相關(guān)信息。由于兼容性問題,HTML5規(guī)范允許該屬性返回 "4.0"。不要指望該屬性返回正確的值。該特性已經(jīng)從 Web 標(biāo)準(zhǔn)中刪除,雖然一些瀏覽器目前仍然支持它,但也許會(huì)在未來(lái)的某個(gè)時(shí)間停止支持,請(qǐng)盡量不要使用該特性。
browserLanguage屬性【大部分瀏覽器嘗試也都比較支持,盡量不使用】
功能:返回當(dāng)前瀏覽器的語(yǔ)言。該屬性是一個(gè)只讀的字符串。
語(yǔ)法:navigator.browserLanguage
總結(jié):--
cookieEnabled屬性【大部分瀏覽器嘗試也都比較支持,盡量不使用】
功能:返回指明瀏覽器中是否啟用 cookie 的布爾值。該屬性是一個(gè)只讀的字符串。
語(yǔ)法:navigator.cookieEnabled
總結(jié):--
cpuClass屬性
功能:返回瀏覽器系統(tǒng)的 CPU 等級(jí)。該屬性是一個(gè)只讀的字符串。
語(yǔ)法:navigator.cpuClass
總結(jié):--
platform屬性
功能:返回運(yùn)行瀏覽器的操作系統(tǒng)平臺(tái)。該屬性是一個(gè)只讀的字符串。
語(yǔ)法:navigator.platform
總結(jié):platform 可能是: "Win32", "Linux i686", "MacPPC", "MacIntel", 等,在一定程度上可以用來(lái)區(qū)分移動(dòng)端和pc端,但不是很好的方案。
systemLanguage屬性【大部分瀏覽器嘗試也都比較支持,盡量不使用】
功能:返回 OS 使用的默認(rèn)語(yǔ)言。該屬性是一個(gè)只讀的字符串。
語(yǔ)法:navigator.systemLanguage
總結(jié):--
product屬性
功能:該屬性返回當(dāng)前瀏覽器的產(chǎn)品名稱。該屬性是一個(gè)只讀的字符串。
語(yǔ)法:navigator.product
總結(jié):該屬性不一定返回一個(gè)真實(shí)的產(chǎn)品名稱。Gecko 和 WebKit 瀏覽器返回 "Gecko" 作為該屬性的值。
userAgent屬性【重點(diǎn)】
功能:返回當(dāng)前瀏覽器發(fā)送服務(wù)器的用戶代理(user-agent)頭部的值(字符串)。該屬性是一個(gè)只讀的字符串。
語(yǔ)法:navigator.userAgent
總結(jié):先看看chrome、safari、ios、android的返回值:

1 chrome: 2 Mozilla/5.0
3 (Macintosh; Intel Mac OS X 10_12_6) 4 AppleWebKit/537.36 (KHTML, like Gecko)
5 Chrome/61.0.3163.91 Safari/537.36
6 safari: 7 Mozilla/5.0
8 (Macintosh; Intel Mac OS X 10_12_6) 9 AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0
10 Safari/604.1.38
11 ios11劉海X: 12 Mozilla/5.0
13 (iPhone; CPU iPhone OS 11_0 like Mac OS X) 14 AppleWebKit/604.1.38 (KHTML, like Gecko)
15 Version/11.0 Mobile/15A372 Safari/604.1
16 ipad: 17 Mozilla/5.0
18 (iPad; CPU OS 9_1 like Mac OS X) 19 AppleWebKit/601.1.46 (KHTML, like Gecko)
20 Version/9.0 Mobile/13B143 Safari/601.1
21 galxy sansum: 22 Mozilla/5.0
23 (Linux; Android 5.0; SM-G900P Build/LRX21T)
24 AppleWebKit/537.36 (KHTML, like Gecko)
25 Chrome/61.0.3163.91 Mobile Safari/537.36
26 安裝uc瀏覽器: 27 Mozilla/5.0
28 (Linux; U; Android 6.0.1; zh-CN; Mi Note 2 Build/MXB48T)
29 AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0
30 Chrome/40.0.2214.89 UCBrowser/11.4.9.941 Mobile Safari/537.36
31 winphone: 32 Mozilla/5.0
33 (Linux; Android 5.1.1; Nexus 6 Build/LYZ28E)
34 AppleWebKit/537.36 (KHTML, like Gecko)
35 Chrome/61.0.3163.91 Mobile Safari/537.36
36 hybrid方法的可能: 37 Mozilla/5.0
38 (iPhone; CPU iPhone OS 11_0 like Mac OS X) 39 AppleWebKit/604.1.38 (KHTML, like Gecko)
40 Mobile/15A372 weibo/80011134

一般來(lái)講,它是在 navigator.appCodeName 的值之后加上斜線和 navigator.appVersion 的值構(gòu)成的。
例子:
- 判斷當(dāng)前頁(yè)面所在的環(huán)境是不是微信內(nèi)置瀏覽器
userLanguage屬性【大部分瀏覽器嘗試也都比較支持,盡量不使用】
功能:返回 OS 的自然語(yǔ)言設(shè)置。該屬性是一個(gè)只讀的字符串。
語(yǔ)法:navigator.userLanguage
總結(jié):--
作用(navigator.userAgent簡(jiǎn)稱UA)
- 統(tǒng)計(jì)用戶瀏覽器使用情況。有些瀏覽器說(shuō)被多少人使用了,實(shí)際上就可以通過(guò)判斷每個(gè)IP的UA來(lái)確定這個(gè)IP是用什么瀏覽器訪問的,以得到使用量的數(shù)據(jù)。
- 根據(jù)用戶使用瀏覽器的不同,顯示不同的排版從而為用戶提供更好的體驗(yàn)。有些網(wǎng)站會(huì)根據(jù)這個(gè)來(lái)調(diào)整打開網(wǎng)站的類型,如是手機(jī)的就打開wap,顯示非手機(jī)的就打開pc常規(guī)頁(yè)面。用手機(jī)訪問谷歌和電腦訪問是不一樣的,這些是谷歌根據(jù)訪問者的UA來(lái)判斷的。
|