[Javascript]客户端检测
客户端检测是一种行之有效的开发策略。但不到万不得已,就不要使用客户端检测。先设计通用的方案,然后根据浏览器之间的差异和各自的怪癖quirky,再使用特定于浏览器的技术增强该方案。 能力检测 Feature Detection 能力检测(又称特性检测)目标是识别浏览器的能力而不是识别特定的浏览器。只需根据浏览器支持的功能给出解决方案。 能力检测作为确定下一步解决方案的依据,而不是用它来判断用户使用的是什么浏览器。 基本模式: if( object.propertyInQuestion){ //使用 object.propertyInQuestion } 两个重要的概念: 第一个概念是先检测达成目的的最常用的特性。先检测最常用的特性,可以保证代码最优化,因为在多数情况下都可以避免测试多个条件。 第二个概念是必须测试实际要用到的特性。一个特性存在,不一定意味着另一个特性也存在。 更可靠的能力检测 确定一个对象是否支持排序,检测对象是否支持sort()方法。 //只检测了是否存在相应的方法 function isSortable(object){ return !!object.sort; } var result= isSortable({sort:true}); 检测某个属性是否存在并不能确定对象是否支持排序。,检测sort是不是一个函数。 function isSortable