1.不到万不得已,就不要使用客户端检测
2.客户端检测的方式(按照使用优先级):
①能力检测:在编写代码之前先检测特定浏览器的能力(而不是识别特定的浏览器)
②怪癖检测:怪癖实际上是浏览器实现中存在的bug。怪癖检测的目的是识别浏览器的特殊行为。
③用户代理检测:通过检测用户代理字符串来识别浏览器(识别呈现引擎、识别浏览器、识别平台、识别Windows操作系统、识别移动设备、识别游戏系统)
3.能力检测两个重要的概念:
①先检测达成目的的最常用的特性
②必须测试实际要用到的特性
4.在浏览器环境下测试任何对象的某个特性是否存在:
function isHostMethod ( object , property ){
var t = typeof object[property] ;
return t == ‘function’ || ( !! ( t == ‘object’ && object[property] )) || t == ‘unknown’ ;
}
5.用户代理检测识别呈现引擎检测顺序:
①识别Opera
Opera 5及更高版本都有window . opera对象;
Opera 7.6及更高版本调用version() 方法可以返回一个代表浏览器版本的字符串。
②识别WebKit
Mozilla/5.0 (平台; 加密类型; 操作系统或CPU; 语言) AppleWebKit/AppleWebKit 版本号 (KHTML, like Gecko) Safari/Safari 版本号
③识别KHTML
Konqueror 3.1及之前版本:Mozilla/5.0 (compatible; Konqueror/版本号; 操作系统或CPU);
Konqueror 3.2及之后版本:Mozilla/5.0 (compatible; Konqueror/版本号; 操作系统或CPU) KHTML/KHTML 版本号 (like Gecko)
④识别Gecko
Mozilla/Mozilla 版本号 (平台; 加密类型; 操作系统或CPU; 语言; 预先发行版本) Gecko/Gecko 版本号 应用程序或产品/应用程序或产品版本号
⑤识别IE
IE 4-IE 7:Mozilla/4.0 (conpatible; MSIE 版本号; 操作系统);
IE 8-IE 9:Mozilla/Mozilla 版本号 (conpatible; MSIE 版本号; 操作系统; Trident/Trident 版本号);
6.用户代理检测的适用情形:
①不能直接准确地使用能力检测或怪癖检测
②同一款浏览器在不同平台下具备不同的能力
③为了跟踪分析等目的需要知道确切的浏览器