1.不到萬不得已,就不要使用客戶端檢測
2.客戶端檢測的方式(按照使用優(yōu)先級):
①能力檢測:在編寫代碼之前先檢測特定瀏覽器的能力(而不是識別特定的瀏覽器)
②怪癖檢測:怪癖實際上是瀏覽器實現中存在的bug。怪癖檢測的目的是識別瀏覽器的特殊行為。
③用戶代理檢測:通過檢測用戶代理字符串來識別瀏覽器(識別呈現引擎、識別瀏覽器、識別平臺、識別Windows操作系統(tǒng)、識別移動設備、識別游戲系統(tǒng))
3.能力檢測兩個重要的概念:
①先檢測達成目的的最常用的特性
②必須測試實際要用到的特性
4.在瀏覽器環(huán)境下測試任何對象的某個特性是否存在:
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 (平臺; 加密類型; 操作系統(tǒng)或CPU; 語言) AppleWebKit/AppleWebKit 版本號 (KHTML, like Gecko) Safari/Safari 版本號
③識別KHTML
Konqueror 3.1及之前版本:Mozilla/5.0 (compatible; Konqueror/版本號; 操作系統(tǒng)或CPU);
Konqueror 3.2及之后版本:Mozilla/5.0 (compatible; Konqueror/版本號; 操作系統(tǒng)或CPU) KHTML/KHTML 版本號 (like Gecko)
④識別Gecko
Mozilla/Mozilla 版本號 (平臺; 加密類型; 操作系統(tǒng)或CPU; 語言; 預先發(fā)行版本) Gecko/Gecko 版本號 應用程序或產品/應用程序或產品版本號
⑤識別IE
IE 4-IE 7:Mozilla/4.0 (conpatible; MSIE 版本號; 操作系統(tǒng));
IE? 8-IE 9:Mozilla/Mozilla 版本號 (conpatible; MSIE 版本號; 操作系統(tǒng); Trident/Trident 版本號);
6.用戶代理檢測的適用情形:
①不能直接準確地使用能力檢測或怪癖檢測
②同一款瀏覽器在不同平臺下具備不同的能力
③為了跟蹤分析等目的需要知道確切的瀏覽器