对象检测,objectdetection----检测浏览器对JavaScript的支持程度

对象检测,是为了让脚本有良好的向后兼容性。

对象检测的方式为:测试某个特定的对象或对象的属性是否存在,如果存在,就执行Javascript的一个分支,否则就执行另一个分支。

解决方案:

只要把某个方法打包在一个if语句里,就可以根据这条if语句的条件表达式的求值结果是true(这个方法存在)还是false(这个方法不存在)来决定应采取怎样的行动。

这样就可以把不支持某个特定DOM方法的浏览器检测出来:

 if(method){
statements
}

注意:

在使用对象检测时,一定要删掉方法名后面的圆括号,如果不删除,测试的将是方法的结果,无论方法是否存在。

function myFn(){
if(document.getElementById){
statements using getElementById
}
}

解决方案的不足:

编写出来的函数会增加一对花括号,如果要测试多个DOM方法或属性是否存在,函数中最重要的代码就会被深埋在一层又一层的花括号中,代码很难理解。

另一种思路:

把测试条件改为“如果你不理解这个方法,请离开”则更简单,需要使用“逻辑非”操作符,如下表示:

if(!method) return false;

个人习惯,出于可读性考虑,把这些必要的对象检测代码放在函数的开头部分。