浏览器提供商虽然在实现公共接口方面投入了很多精力,但结果仍然是每一种浏览器都有各自的长处,也都有各自的缺点。即使是那些跨平台的浏览器,虽然从技术上看版本相同,也照样存在不一致性问题。面对普遍存在的不一致性问题,开发人员要么采取迁就各方的“最小公分母”策略,要么(也是更常见的)就得利用各种客户端检测方法,来突破或者规避种种局限性。能力检测能力检测的目标不是识别特定的浏览器,而是识别浏览器的能力。采用这种方式不必顾及特定的浏览器如何如何,只要确定浏览器支持特定的能力,就可以给出解决方案。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 retieve element');
}
}这里通过能力检测获取元素,首先检测document对象是否有getElementById方法,然后检测是否有all对象,如果上述都没检测到则抛出错误.能力检测有两点需要注意优先检测达到目的最常用的特性检测实际用到的属性当然,更靠谱的检测时使用typeof来检测其特性的类型,而非仅仅通过
...
继续阅读
(30)