客户端检测
9.1 能力检测
能力检测: 能力检测针对不同浏览器或者浏览器版本不同所进行的检测。不同的浏览器里可能存在或者不存某个特定的方法,比如IE早版本下就不存在 document.getElementById() 方法,取而代之的是其存在的document.all方法。注意:能力检测不是浏览器检测
可以使用 if( a ){
//如果 a 方法存在 就使用 a 方法。
a();
}else{
//如果a方法不存在 就需要在这写浏览器所实现的方法
}
进一步的能力检测:有可能浏览器厂商实现了 某一方法, 但是该方法与平时所用或者我们认为的方法功能不一样,所以需要进行进一步的能力检测。可以使用
if( type of a == 'function'){
//针对不同浏览器所实现的方法
}
9.2 怪癖检测
怪癖一般指的是浏览器实现的方法有些奇怪的地方。一般会认为这个是bug。我觉得这个可以在调试代码时出现不可理解的事情的时候,去查阅一下就可以找到解决方法。
9.3 用户代理检测
这个指的是对用户的浏览器进行检测,只不过在浏览器的发展历史中,通过js内置方法获取到的当前浏览器的信息。但是可能会存在“电子欺诈"。也就是说,可能会在厂商会在浏览器的代理信息中添加其他的信息,我们获得的信息可能就会因此而不正确。
在实际的检测中,用户代理检测的争议非常大。推荐使用能力检测更为稳妥。
以上只是我对第九章的一些浅显的理解,需要知道更多可以翻阅第九章内容。:)