宿主对象window.navigator返回的是一个navigator对象,其中包含了有关浏览器的一些信息,可以用来查询运行当前脚本的环境(应用程序)的相关信息。
navigator对象中包含的主要属性如下图所示:
Chrome 环境下
1. Navigator对象的主要属性
-
appCodeName
功能:只读属性,返回浏览器的代码名;
语法:navigator.appCodeName
在所有以Netscape代码为基础的浏览器中,它的值是"Mozilla",包括:IE、chrome、safari。 -
appName
功能:只读属性,返回浏览器的名称;
语法:navigator.appName
在chrome、safari的里面都是返回"Netscape"; -
platform
功能:只读属性,返回浏览器所在的系统平台类型;
语法:navigator.platform
platform 可能是: "Win32", "Linux i686", "MacPPC", "MacIntel" 等, -
product
功能:只读属性,返回当前浏览器的产品名称
Gecko 和 WebKit 浏览器返回 "Gecko" 作为该属性的值; -
userAgent (重点)
功能:只读属性,返回当前浏览器的用户代理;如下所示:
以上大部分数据是在chrome开发者工具或者ios模拟器模拟的结果。//Chrome Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.132 Safari/537.36 //Safari Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_6) AppleWebKit/604.1.38 (KHTML, like Gecko)Version/11.0 Safari/604.1.38 //ios (iphoneX) Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 //ipad Mozilla/5.0 (iPad; CPU OS 11_0 like Mac OS X) AppleWebKit/604.1.34 (KHTML, like Gecko) Version/11.0 Mobile/15A5341f Safari/604.1 // Android (Galaxy S5) Mozilla/5.0 (Linux; Android 5.0; SM-G900P Build/LRX21T) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.132 Mobile Safari/537.36 //Windows phone Mozilla/5.0 (compatible; MSIE 10.0; Windows Phone 8.0; Trident/6.0; IEMobile/10.0; ARM; Touch; NOKIA; Lumia 520)
2. 应用实例
<script>
var ua = navigator.userAgent,
ios = /iPhone|iP[oa]d/.test(ua),
android = /Android/.test(ua);
windows_phone = /Windows Phone/.test(ua);
console.log(`ua[${ua}] ios[${ios}] android[${android}] windows_phone[${windows_phone}]`);
if (android || ios || windows_phone) {
$("#demo").css("display","none");
}else {
$("#demo").css("display","block");
}
</script>