1.浏览器能力检测
根据浏览器不能将能力组合起来是更可取的方式。一次性检测所有相关特性,而不分别检测。
举例
1 //确定浏览器是否支持Netscape风格的插件 2 var hasNSPlugins = !!(navigator.plugins && navigator.plugins.length) 3 4 //确定浏览器是否具有DOM1级规定的能力 5 var hasDOM1 = !!(document.getElementById && document.createElement && document.getElementByTagName);
在实际开发中,应该将能力检测作为确定下一步解决方案的依据,而不是用它来判断用户使用的是什么浏览器。
2.怪癖检测
3.用户代理检测
a.在每一次HTTP请求的过程中,用户代理字符串是作为响应首部发送的,可以通过javascript的navigator.userAgent属性访问。
b.在服务端,通过检测用户代理字符串确定用户使用的浏览器是一种常用而且广泛接受的做法,在客户端则一般不使用,其优先级
在能力检测和(或)怪癖检测之后。
注:用户代理颇受争议,是因为 “电子欺骗”,所谓电子欺骗,就是指浏览器通过自己的用户代理字符串加入一些错误或者误导信息,
来达到欺骗服务器的目的。
c. IE8用户代理字符串中添加了引擎(trident) 的版本号:
Mozilla/4.0 (compatible; MSIE 版本号; 操作系统; Trident/Trident 版本号)
原文:http://www.cnblogs.com/yiliweichinasoft/p/3560193.html