Navigator 對象,能夠清楚地知道瀏覽器的相關信息

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 的值構成的。

例子:

  • 判斷當前頁面所在的環境是不是微信內置瀏覽器
function isWeiXin () {var ua = window.navigator.userAgent.toLowerCase();if (ua.match(/MicroMessenger/i) == 'micromessenger') {return true;} else {return false;}
}
  • 判斷蘋果、安卓、pc
if (/(iPhone|iPad|iPod|iOS)/i.test(navigator.userAgent)) { //判斷iPhone|iPad|iPod|iOSwindow.location.href ="iPhone.html";
} else if (/(Android)/i.test(navigator.userAgent)) {  //判斷Androidwindow.location.href ="Android.html";
} else { //pcwindow.location.href ="pc.html";
};
  • 正則表達式判斷瀏覽器類型
function userBrowser(){   var browserName=navigator.userAgent.toLowerCase();   if(/msie/i.test(browserName) && !/opera/.test(browserName)){   alert("IE");   return ;   }else if(/firefox/i.test(browserName)){   alert("Firefox");   return ;   }else if(/chrome/i.test(browserName) && /webkit/i.test(browserName) && /mozilla/i.test(browserName)){   alert("Chrome");   return ;   }else if(/opera/i.test(browserName)){   alert("Opera");   return ;   }else if(/webkit/i.test(browserName) &&!(/chrome/i.test(browserName) && /webkit/i.test(browserName) && /mozilla/i.test(browserName))){   alert("Safari");   return ;   }else{   alert("unKnow");   }   
}  

userLanguage屬性【大部分瀏覽器嘗試也都比較支持,盡量不使用】

功能:返回 OS 的自然語言設置。該屬性是一個只讀的字符串。

語法:navigator.userLanguage

總結:--

作用(navigator.userAgent簡稱UA)

  • 統計用戶瀏覽器使用情況。有些瀏覽器說被多少人使用了,實際上就可以通過判斷每個IP的UA來確定這個IP是用什么瀏覽器訪問的,以得到使用量的數據。
  • 根據用戶使用瀏覽器的不同,顯示不同的排版從而為用戶提供更好的體驗。有些網站會根據這個來調整打開網站的類型,如是手機的就打開wap,顯示非手機的就打開pc常規頁面。用手機訪問谷歌和電腦訪問是不一樣的,這些是谷歌根據訪問者的UA來判斷的。

轉載于:https://www.cnblogs.com/jameBo/p/10566471.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/278130.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/278130.shtml
英文地址,請注明出處:http://en.pswp.cn/news/278130.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Jerry和您聊聊Chrome開發者工具

2019獨角獸企業重金招聘Python工程師標準>>> Chrome開發者工具是Jerry日常工作使用的三大調試器之一。雖然工具名稱前面帶了個"開發者", 但是它對非開發人員仍然有用。不信? 用Chrome打開我們常用的網站,按F12,在Consol…

BZOJ4314 倍數?倍數!

好神仙啊.... 題意 在$ [0,n) $中選$ k$個不同的數使和為$ n$的倍數 求方案數 $ n \leq 10^9, \ k \leq 10^3$ 題解 k可以放大到1e6的 先不考慮$ k$的限制 對答案構建多項式$ f(x)\prod\limits_{i0}^{n-1}(x^i1)$ 答案就是這個多項式所有次數為$ n$的倍數的項的系數和 考慮單位…

win2008R2管理員密碼修改文檔

場景:忘記了win2008R2服務器的管理員密碼。解決辦法:1、 制作一個U盤啟動盤:2、 系統通過U盤啟動進入WINpe系統3、 在知道Win2008安裝位置的情況下;查找C:\windows\system32\osk.exe 將osk.exe文件修改為:osk.exe.bat&…

Python檔案袋( 面向對象 )

類即是一個模型,根據模型建立起不同的對象,對象間擁有共同的一些屬性 簡單的類: 1 class P:2 #類變量,所有實例共享變量,推薦使用方法是:類名.類變量名3 pvarx"ppvar1"4 5 #構造函數6 def _…

javascript中的后退和刷新

轉自&#xff1a;https://www.cnblogs.com/tylerdonet/p/3911303.html <input typebutton value刷新 οnclick"window.location.reload()"><input typebutton value前進 οnclick"window.history.go(1)"><input typebutton value后退 οncl…

第四周

7-2 選擇法排序 &#xff08;20 分) 本題要求將給定的n個整數從大到小排序后輸出。 輸入格式&#xff1a; 輸入第一行給出一個不超過10的正整數n。第二行給出n個整數&#xff0c;其間以空格分隔。 輸出格式&#xff1a; 在一行中輸出從大到小有序的數列&#xff0c;相鄰數字間有…

checkPathValidity 檢查所有agent的corridor的m_path是否有效

在checkPathValidity&#xff08;檢查所有agent的corridor的m_path是否有效&#xff09; 如果是無效的要進行重新設置并且設置replan 首先獲得第一個polygon&#xff0c;m_path[0] 這里&#xff0c;因為addagent的時候&#xff0c;ag->corridor.reset(ref, nearest); m_path…

來談談JAVA面向對象 - 魯班即將五殺,大喬送他回家??

開發IDE為Eclipse或者MyEclipse。 首先&#xff0c;如果我們使用面向過程的思維來解決這個問題&#xff0c;就是第一步做什么&#xff0c;第二步做什么&#xff1f; 魯班即將五殺&#xff0c;大喬送他回家 這個現象可以簡單地拆分為兩步&#xff0c;代碼大概是這個樣子的: publ…

Vue 教程第一篇——基礎概念

認識 Vue 關于 Vue 的描述有不少&#xff0c;不外乎都會拿來與 Angular 和 React 對比&#xff0c;同樣頭頂 MVVM 雙向數據驅動設計模式光環的 Angular 自然被對比的最多&#xff0c;但到目前為止&#xff0c;Angular 在熱度上已明顯不及 Vue&#xff0c;性能已成為最大的詬病。…

Microsoft Teams的Outgoing Webhook開發入門

Microsoft Teams的應用程序有幾種形式&#xff1a; TabsBotsConnectorsMessaging extensionsActivity feed integrationsOutgoing web hooks 這篇我們主要介紹如何使用 ASP.NET Core來開發最簡單的Outgoing web hook。 什么是outgoing webhook Outgoing webhooks allow you t…

0418 jQuery筆記(添加事件、each、prop、$(this))

1.添加點擊事件、each、prop、$(this) 1 //全選框的被動操作2 //定義一個標志保存最終狀態3 var flag false;4 //為每一個選擇框添加點擊事件&#xff0c;數組.click()5 $(.chex).click(function(){6 //遍歷數組&#xff0c;數組.each()7 …

[WC2008]游覽計劃(斯坦納樹)

[Luogu4294] 題解 : 斯坦納樹 \(dp[i][j]\) 表示以\(i\)號節點為根&#xff0c;當前狀態為\(j\)&#xff08;與\(i\)連通的點為\(1\)&#xff09; 當根\(i\)不改變時狀態轉移方程是&#xff1a; \(dp[i][j] \min_{s \in j}\{dp[i][s] dp[i][\complement_js] - val[i]\}\) 當根…

使用dotnet template快速開發Microsoft Teams Outgoing Web Hook

在上一篇文章中&#xff0c;我們一步步從無到有在Microsoft Teams中開發了一個簡單的Outgoing Webhook&#xff0c;并和我們本地的Web API應用程序產生交互&#xff0c;總結起來的步驟大概如下&#xff1a; 導航到“團隊” Tab頁&#xff0c; 選中需要建立的Channel, 選中“應…

[Swift]LeetCode1013. 將數組分成和相等的三個部分 | Partition Array Into Three Parts With Equal Sum...

★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★?微信公眾號&#xff1a;山青詠芝&#xff08;shanqingyongzhi&#xff09;?博客園地址&#xff1a;山青詠芝&#xff08;https://www.cnblogs.com/strengthen/&#xff09;?GitHub地址&a…

京津冀產業協同升級 智慧城市等高端產業需求遇熱

云計算、智慧交通、城市環保科技等高端智慧城市產業項目正成為京津冀產業協同的新關注點。 21日&#xff0c;在由北京市經信委、天津市工信委、河北省工信廳聯合組織的京津冀產業協同發展招商推介專項行動上&#xff0c;超過200家與會企業共完成產業對接項目額達311.7億元。與以…

Microsoft Teams:刪除成員賬戶其歷史聊天會發生什么?

介紹&#xff1a; 此博客文章的目的是演示從Office 365刪除用戶的賬號后&#xff0c;此用戶在Microsoft Teams群聊和私聊中的歷史聊天記錄會發生什么改變。 以下是Microsoft Teams聊天對話&#xff0c;其中Adele和其他團隊成員正在參與對話&#xff1a; 此外, Adele和Mega還在…

PostgreSQL Huge Page 使用建議 - 大內存主機、實例注意

標簽 PostgreSQL , Linux , huge page , shared buffer , page table , 虛擬地址 , 物理地址 , 內存地址轉換表 背景 當內存很大時&#xff0c;除了刷臟頁的調度可能需要優化&#xff0c;還有一方面是虛擬內存與物理內存映射表相關的部分需要優化。 1 臟頁調度優化 1、主要包括…

Microsoft Teams:團隊Owner離開公司后,我們該怎么做?

您是否曾在這么一個團隊里&#xff0c;該團隊唯一有Owner權限的人離開了公司&#xff1f;不幸的是,如果這個人不再在公司里&#xff0c;您可能覺得沒有辦法讓其他團隊成員再成為team的owner。我有一個簡單易用的解決方案&#xff0c;但您需要成為Office 365租戶的Admin或聯系你…

python網絡編程-socket編程

一、服務端和客戶端 BS架構 &#xff08;騰訊通軟件&#xff1a;serverclient&#xff09; CS架構 &#xff08;web網站&#xff09; C/S架構與socket的關系&#xff1a; 我們學習socket就是為了完成C/S架構的開發 二、OSI七層模型 互聯網協議按照功能不同分為osi七層或tcp/ip五…

使用PowerShell配置Microsoft Teams

作為 IT 專業人員, 我一直在尋找自動化任務的方法, 并使日常操作簡單。當使用Microsoft Teams時, 是否能夠在團隊中自動創建團隊&#xff0c;渠道和設置對于Microsoft Teams組建的成功與否至關重要。PowerShell對Microsoft Teams的支持使您可以做到這一點&#xff0c;它為我提供…