第十三章----客户端检测

客户端检测是JS中争议最多的话题之一,因为不同的浏览器之间存在差异,所以经常需要根据浏览器的能力来编写不同的代码。

能力检测

在JS运行时中使用一套简单的检测逻辑,测试浏览器是否支持某种特性。
ep: 盘点IE5之前的版本中没有document.getElementById这个DOM方法,
注意:能力检测最适合用于决定下一步应该怎么做,而不一定能够作为辨识浏览器的标志。

用户代理检测

通过浏览器的用户代理字符串确定使用的是什么浏览器。用户代理字符串包含在每个HTTP请求的头部,在JS中可以通过navigator.userAgent访问。
注意: 在客户端,用户代理检测被认为是不可靠的,只应该在没有其他选项时再考虑。
因为通过有些浏览器提供伪私有的__defineGetter__方法,利用它可以篡改用户代理字符串。

软件与硬件检测

1.识别浏览器与操作系统
1.1 navigator.oscpu
1.2 navigator.vendor
1.3
2. 浏览器元数据
2.1 navigator.geolocation 让浏览器版本感知当前设备的地理位置
2.2 Connection State和NetworkInformation API 联网情况(有些浏览器认为只要连接到局域网就算"在线“,而不管是否真正接入了互联网)
2.3 Battery Status API 访问设备电池及充电状态的信息
3. 硬件(能力非常有点)
3.1 处理器核心数
3.2 设备内存大小
3.3 最大触点数

总结:用的最多的是能力检测和用户代理检测。能力检测是使用之间先测试浏览器的特定能力,例如:脚本可以再调用某个函数的时候先检查它是否存在。能力检测不能精确地反映特定的浏览器或版本。
用户能力检测是通过用户代理字符串确定浏览器(可被伪造,不可靠)。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值