能力检测的目标不是识别特定的浏览器,而是识别浏览器的能力。
能力检测的基本模式
if (object.propertyInQuestion) {
//使用object.propertyInQuestion
}
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.更可靠的能力检测
使用typeof操作符进行能力检测。
function isHostMethod(object, property) {
var t = typeof object[property];
return t=='function' || (!!(t=='object' && object[property])) || t=='unkonw';
}
2.能力检测,不是浏览器检测
检测某个或几个特性并不能够确定浏览器,实际上,根据浏览器的不同将能力组合起来是更可取的方式。