1

最近写了一些东西,需要在android或者ios,以及是否存在于微信内嵌浏览器中,进行不同的操作,感觉这个在平时还是挺常用的,在此分享下

navigator对象

要进行判断我们需要获取浏览器的相关信息,navigator对象包含有关浏览器的信息,我们可以直接先在控制台输入一下navigator,来看一下。

clipboard.png
从中我们可以得到很多有用的信息
下面列出一些基本使用的
appCodeName 返回浏览器的代码名。
appName 返回浏览器的名称。
appVersion 返回浏览器的平台和版本信息。
browserLanguage 返回当前浏览器的语言。
onLine 返回指明系统是否处于脱机模式的布尔值。
platform 返回运行浏览器的操作系统平台。
userAgent 返回由客户机发送服务器的 user-agent 头部的值。

navigator.userAgent 属性是一个只读的字符串,声明了浏览器用于 HTTP 请求的用户代理头的值。

clipboard.png
有些人 可能会好奇 为什么 我用的浏览器是谷歌,还会显示 Mozilla?
那是因为appCodeName是一个只读字符串,声明了浏览器的代码名。在所有以Netscape代码为基础的浏览器中,它的值就是"Mozilla"。为了兼容起见,在Microsoft的浏览器中,它的值也是"Mozilla"。
重点到了,下面我们可以通过获取navigator.userAgent后,因为前面说了,这个对象是一个字符串,我们可以使用string.indexOf( searchvalue )的返回结果,来判断当前是否在对应环境中
'Android' 安卓,
'iPhone' ios,
'MicroMessenger' 微信
不过据说 在windows phone上判断微信会有问题 因为手上没有相关设备,没有去测试,加上windows Phone如今的市场占有率几乎可以忽略了。
另外indexOf()方法会区分大小写,这点需要注意,
网上很多人在使用先进行大小写转化

navigator.userAgent.toLowerCase().indexOf('') 

可以按照这种方法先进行小写转化,省的因为输错大小写的关键词影响结果,我一般也是这样在用。

另外onLine 用来判断是否离线,也挺常用的。
通过navigator对象,我们可以根据不同浏览器进行对应的适配,感兴趣的人可以再去看看各个属性的值。


清水
26 声望2 粉丝

清水既心、