您的位置:首页 > Web前端 > JavaScript

javascript高级程序设计第三版 第9章 客户端检测

2017-08-15 17:15 309 查看

9.1 能力检测

能力检测(又称特性检测)的目标不是识别特定的浏览器,而是识别浏览器的能力。

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!");
}
}


1、先检测达成目的的最常用的特性,在多数情况下都可以避免测试多个条件。

2、测试实际用到的特性。

9.1.1 更可靠的能力检测

能力检测对于想知道某个特性是否会按照适当方式行事(而不仅仅是某个特性存在)非常有用。

//不要这样做,只检测了是否存在对象成员,!是取反,!!是取反再取反
function isSortable(object){
return !!object.sort;
}

//这样更好:检查sort是不是函数
function isSortable(object){
return typeof object.sort == "function";
}


9.1.2 能力检测,不是浏览器检测



9.2 怪癖检测

怪癖检测是想要知道浏览器存在什么缺陷(bug)。这通常需要运行一小段代码,以确定某一特性不能正常工作。



9.3 用户代理检测

其优先级排在能力检测和(或)怪癖检测之后。

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  javascript