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

一般來講,它是在 navigator.appCodeName 的值之后加上斜線和 navigator.appVersion 的值構成的。
例子:
userLanguage屬性【大部分瀏覽器嘗試也都比較支持,盡量不使用】
功能:返回 OS 的自然語言設置。該屬性是一個只讀的字符串。
語法:navigator.userLanguage
總結:--
作用(navigator.userAgent簡稱UA)
- 統計用戶瀏覽器使用情況。有些瀏覽器說被多少人使用了,實際上就可以通過判斷每個IP的UA來確定這個IP是用什么瀏覽器訪問的,以得到使用量的數據。
- 根據用戶使用瀏覽器的不同,顯示不同的排版從而為用戶提供更好的體驗。有些網站會根據這個來調整打開網站的類型,如是手機的就打開wap,顯示非手機的就打開pc常規頁面。用手機訪問谷歌和電腦訪問是不一樣的,這些是谷歌根據訪問者的UA來判斷的。
|