每篇文章纯属个人经验观点,如有错误疏漏欢迎指正
navigator
对象中包含了用户所使用的浏览器以及操作系统等信息,我们可以通过查询相关信息从而让我们的系统能够与浏览器及操作系统兼容。 尽管我们现在几乎已经不需要在面对 IE6
这种史诗级级别的浏览器,但在IE10
以下的浏览器仍存在一些问题,对一些特性并不能起到很好的支持。例如说 IE8/9
并不支持 FormData
,这就在文件上传时给我们造成了一定的麻烦。如果没有兼容低版本浏览器的打算,可以直接通过 navigator
来检测浏览器的版本,来提示用户更换高版本的浏览器以访问系统。
一、Navigator 属性和方法
主要属性:
appCodeName
返回浏览器的代码名;
所有以 Netscape
代码为基础和 Microsoft
的浏览器中,返回 Mozilla
,有少部分浏览器会返回 Gecko
。
appVersion
返回浏览器版本信息;
返回的内容包括用户的操作系统及版本、浏览器使用的网页排版引擎、浏览器内核及版本等。且不同浏览器返回的格式是不同的。
appName
返回浏览器的完整名称;
在基于 Netscape
的浏览器中,返回 Netscape
。在 IE
中,返回 Microsoft Internet Explorer
。其他浏览器可以正确地表示自己或者伪装成其他的浏览器以达到兼容性。所以我们并不能通过该属性获得正确的浏览器名称。
cookieEnabled
表示浏览器cookie
是否允许使用;
用户可以手动设置是否允许使用 cookie
,该属性值为 true
表示允许使用。
language
浏览器的主语言;
中文返回 zh-CN
,H5新增了 languages
属性,会返回一个数组来表示网站访客所使用的语言,比如 Chrome
会返回 ["zh-CN", "zh", "en"]
。
onLine
表示浏览器是否连接到了因特网;
返回一个布尔值来表明浏览器是否联网。
platform
返回浏览器所在的系统平台;
windows
会返回 win32
等。
plugins
浏览器中安装的插件信息的数组;userAgent
返回浏览器的用户代理字符串;
其他属性和方法
appMinorVersion
返回浏览器次版本信息;
只有IE
浏览器支持该属性,FireFox
、Chrome
、Edge
均返回 undefined
。
buildID
返回浏览器编译版本;cpuClass
返回客户端CPU
类型;mimeTypes
在浏览器中注册的MIME
类型数组;