第九章 客户端检测

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.用户代理检测的适用情形:

①不能直接准确地使用能力检测或怪癖检测

②同一款浏览器在不同平台下具备不同的能力

③为了跟踪分析等目的需要知道确切的浏览器

    原文作者:张果果
    原文地址: https://www.jianshu.com/p/73f96ea1f63a
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞