客户端检测一共分为三种,分别为:能力检测、怪癖检测和用户代理检测,通过这三种检测方案,我们可以充分的了解当前浏览器所处系统、所支持的语法、所具有的特殊性能。
1.能力检测
能力检测又称作为特性检测,检测的目标不是识别特定的浏览器,而是识别浏览器的能力。能力检测不必估计特定的浏览器,只需要确定当前的浏览器是否支持特定的能力,就可以给出可行的解决方案。
<head> <meta http-equiv="Content-Type" content="text/html; charset=gb2312" /> <title>浏览器检测</title> <script type="text/javascript"> var width = window.innerWidth; //如果是非 IE 浏览器 if (typeof width != ‘number‘) { //如果是 IE,就使用 document if (document.compatMode == ‘CSS1Compat‘) { width = document.documentElement.clientWidth; } else { width = document.body.clientWidth; //非标准模式使用 body } } alert(width); </script> </head>
上面其实有两块地方使用了能力检测,第一个就是是否支持 innerWidth
的检测,第二个就是是否是标准模式的检测,这两个都是能力检测。
2.怪癖检测(bug
检测)
与能力检测类似,怪癖检测的目标是识别浏览器的特殊行为。但与能力检测确认浏览器支持什么能力不同,怪癖检测是想要知道浏览器存在什么缺陷(bug)。bug
一般属于个别浏览器独有,在大多数新版本的浏览器被修复。
<head> <meta http-equiv="Content-Type" content="text/html; charset=gb2312" /> <title>浏览器检测</title> <script type="text/javascript"> var box = { toString : function () {} //创建一个 toString(),和原型中重名了 }; for (var o in box) { alert(o); //IE 浏览器的一个 bug,不识别了 } </script> </head>
原文:http://www.cnblogs.com/LO-ME/p/3607911.html