一、概述
Navigator 接口表示用户代理的状态和标识。 它允许脚本查询它和注册自己进行一些活动。
可以使用只读的 window.navigator 属性检索navigator对象。
navigator是由Netscape Navigator 2最早引入浏览器的,现在已经成为客户端标识浏览器的标准。只要浏览器启用JavaScript,navigator对象就一定存在。但是与其他BOM对象一样,每个浏览器都支持自己的属性。
二、常用API及其使用场景
在JavaScript高级程序设计(第四版)一书中对navigator对象的属性/方法多达四十个左右,下面列举一些个人认为在项目开发中较常用或可能用到的API以及其作用。
属性/方法 | 说明 |
---|---|
appCodeName | 通常都是Mozilla,即使在非Mozilla浏览器中也是如此 |
appName | 浏览器全名 |
appVersion | 浏览器版本。通常与实际的浏览器版本不一致 |
cookieEnabled | 返回布尔值,表示是否启用了cookie |
deviceMemory | 返回单位为GB的设备内存容量 |
mediaDevices | 返回可用的媒体设备 |
hardWareConcurrency | 返回设备的处理器核心数量 |
javaEnable | 返回布尔值,表示浏览器是否启用了Java |
language | 返回浏览器的主语言 |
languages | 返回浏览器偏好的语言数组 |
online | 返回布尔值,表示浏览器是否联网 |
userAgent | 返回浏览器的用户代理字符串 |
vendor | 返回浏览器的厂商名称 |
说明:各个API的示例均在Googe Chrome浏览器的Console面板中进行演示。
2.1 appCodeName
返回当前浏览器的内部“开发代号”名称。 不能保证此属性返回的值是正确的。
2.2 appName
以 DOMString 的形式返回浏览器官方名称。 不能保证此属性返回的值是正确的
2.3 appVersion
以 DOMString 的形式返回浏览器版本。不能保证此属性返回的值是正确的。
2.4 cookieEnabled
navigator.cookieEnabled 返回一个布尔值,来表示当前页面是否启用了 cookie。本属性为只读属性
2.5 deviceMemory
deviceMemory 只读属性返回千兆字节为单位的大概的机器内存。这个值是一个2的次方数除以1024,舍去小数点的近似值。并且,上下边界也用来保护那些拥有非常低端或者高端设备的用户的隐私。
2.6 mediaDevices
mediaDevices 是 Navigator 只读属性,返回一个 MediaDevices 对象,该对象可提供对相机和麦克风等媒体输入设备的连接访问,也包括屏幕共享。
2.7 hardWareConcurrency
返回可用的逻辑处理器核心数。
2.8 javaEnabled
返回Boolean表明浏览器是否支持Java。
此方法应该用一个变量或常量来接受返回值,并且此返回值总是为false
2.9 language
返回DOMString表示用户的首先语言,通常是浏览器用户界面的语言。当未知的时,返回null。
2.10 languages
返回一个表示用户已知语言的DOMString数组,并按优先顺序排列。
2.11 online
返回Boolean 来表明浏览器是否联网。
2.12 userAgent
返回当前浏览器的用户代理。
2.13 vendor
返回当前所使用浏览器的浏览器供应商的名称。
总结
在开发中要根据业务需求来使用各API,比如在业务场景需要查看用户的媒体设备,那么就需要调用navigator的mediaDevices属性来进行业务的需求开发以及兼容性适配。要想熟练得使用这些API,还需要自身多勤多练。