客户端检测
能力检测:
- 即在JavaScript运行时中使用一套简单的检测逻辑,测试浏览器是否支持某种特性。
function getElement(id) {
if (document.getElementById) {
return document.getElementById(id);
} else if (document.all) {
return document.all[id];
} else {
throw new Error("No way to retrieve element!");
}
}
小结:能力检测一般都是if(一个对象.原型方法),不存在就是elseif,这样子,上面代码,是如果浏览器支持getElementById,就用,不支持就看all支持不,不支持就发送报错信息
安全能力检测:
- 什么叫安全能力监测,因为上例子1中的写法,如果对象中有一个相应的属性,而不是一个方法,那他也会返回true,但是对象并没有这个方法,所以更好的检测方法是检测那个特性是否是函数;
- 运行能力检测时应该尽量使用typeof操作符,但光有它还不够,尤其是某些宿主对象并不保证对typeof测试返回合理的值,
// 好一些,检测sort是不是函数
function isSortable(object) {
return typeof object.sort == "function";
}
基于能力检测进行浏览器分析
- 因为很少用到,所以不做过多表述,基本原理理解一下就好:
- 恰当地使用能力检 测可以精准地分析运行代码的浏览器。每个浏览器支持的属性都不完全一样,所以判断是否支持一些特殊属性,可以推断出用户使用的是什么浏览器
用户代理检测
用户代理检测通过浏览器的用户代理字符串确定使用的是什么浏 览器。用户代理字符串包含在每个HTTP请求的头部,在JavaScript中 可以通过 navigator.userAgent 访问。
总结:这章主要告诉你如何检测浏览器的类型及其版本,然后获取相应的信息,比如蓝牙,以太网,或者设备充电状态以及电池等等,知道有这么回事就好了,以后有需要回来细读,暂时用不上
本文使用 mdnice 排版