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

能力检测与怪癖检测
本文介绍了能力检测和怪癖检测的基本概念及实践方法。能力检测用于确认浏览器是否支持特定功能,而怪癖检测则用于识别浏览器存在的缺陷。文章通过示例展示了如何正确地进行能力检测,以确保网页应用的兼容性和可靠性。

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 用户代理检测

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值