怪癖检测指的是识别浏览器的特殊行为,就是浏览器的缺陷行为。通常是运行一段代码来确定某个特性不能正常工作。

在 IE8以及更早的版本中存在着这样一个 bug:如果某个实例属性与标记为 [[DontEnum]] 的某个原型属性同名,那么这个实例属性不会出现在 for-in 循环中,因此可以这样检测:

//IE8 及早期版本,会把某个与原型属性同名的属性,排除在 for-in 循环外
var hasDontEnumQuirk = function () {var o = {toString: function () {}};for (var prop in o) {if (prop == "toString") {return false;}}return true;
}();console.log(hasDontEnumQuirk);

Safari3 之前的版本会枚举被隐藏的属性,我们可以这样检测:

var hasEnumShadowsQuirk = function () {var o = {toString: function () {}};var count = 0;for (var prop in o) {if (prop == "toString") {count++;}}return (count > 1);//2
}();console.log(hasEnumShadowsQuirk);

总的来说,怪癖都是个别的浏览器所独有的,都称为 bug。因此建议仅检测那些对应用有直接影响的怪癖,而且要在脚本的开头,这样可以尽早发现并解决问题。

说说 JavaScript 对浏览器的怪癖检测相关推荐

  1. JavaScript高级程序设计之客户端检测之怪癖检测第9.2讲笔记

    与能力检测类似,怪癖检测(quirks detection)的目标是识别浏览器的特殊行为.但与能力检测确 认浏览器支持什么能力不同,怪癖检测是想要知道浏览器存在什么缺陷( "怪癖" ...

  2. JavaScript高级程序设计之客户端检测

    浏览器检测,是个很让人头痛但又必须要考虑的一个问题.毕竟市面上的浏览器厂商众多,虽然有些标准化的东西约束着他们,但是有些东西,他们还是各自按自己的意愿来.这其中以IE浏览器最为突出,它几乎可以被称之为 ...

  3. html中获取浏览器窗口宽度,JavaScript 获取浏览器窗口的大小

    简明现代魔法 -> JavaScript -> JavaScript 获取浏览器窗口的大小 JavaScript 获取浏览器窗口的大小 2010-04-16 程序演示: 获取浏览器当前窗口 ...

  4. javascript判断浏览器和终端类型,js如何区分手机、电脑终端和浏览器

    判断浏览器类型 复制代码代码如下: if ( window.sidebar && "object" == typeof( window.sidebar ) & ...

  5. 使用javascript修复浏览器中12个常见而又头痛的问题

    简介 使用javascript修复浏览器中12个常见而又头痛的问题,大部分都使用了jQuery的插件来处理的. 我们提倡无论何时都尽可能地使用CSS,这样我们更容易取得成功.现在浏览器对CSS的支持已 ...

  6. php判段ua限制访问,php实现根据浏览器ua信息检测用户是否用手机(Mobile)访问网站的类...

    php实现根据浏览器ua信息检测用户是否用手机(Mobile)访问网站的类 发布于 2015-01-29 13:57:25 | 152 次阅读 | 评论: 0 | 来源: 网友投递 PHP开源脚本语言 ...

  7. javascript与浏览器学习(一)

    待学习----     20160421 标题:JavaScript中浏览器兼容问题  博客地址:http://www.cnblogs.com/DF-fzh/p/5408241.html     简单 ...

  8. 分针网——Javascript不同浏览器差异及兼容方法

    Javascript不同浏览器差异及兼容方法 javascript的各种兼容就是为了解决不同浏览器的差异性,了解其中的差异能够帮助你更快的解决问题,提高代码的使用质量,编写更优秀的javascript ...

  9. JavaScript判断浏览器类型及版本

    JavaScript判断浏览器类型及版本 你知道世界上有多少种浏览器吗?除了我们熟知的IE, Firefox, Opera, Safari四大浏览器之外,世界上还有近百种浏览器. 几天前,浏览器家族有 ...

最新文章

  1. Python: 测试函数是否被调用
  2. php查到的内容追加到html,javascript - 请问php中如何将查询出来的结果数组转化成自己想要的格式,并在前台利用js输出到html中...
  3. 外媒:iPhone 14全系有望配备120Hz ProMotion显示屏
  4. Redis:从应用到底层,都在这儿了!
  5. Missing artifact com.sun:tools:jar:1.5.0解决的方法
  6. 分布式数据库的最新发展情况
  7. git学习笔记-(3-linux基本命令)
  8. 摩拜、ofo抢着用的NB-IoT技术,听说你还不知道!?
  9. 图像加密标准测试图库
  10. python 删除文件夹中相似图片
  11. 中国科学院大学2015年数学分析高等代数考研试题
  12. html 滑屏 效果,HTML5 web app实现手动页面滑屏效果
  13. origin与matlab 双向联合数据处理
  14. 经纬度批量转地址(保姆级教程)
  15. 马云的顿悟:阿里巴巴在维基经济学中成长
  16. 网页设计-公用导航栏
  17. 22个无版权限制的高清无码图库站
  18. Linux-根目录(/)的意义与内容
  19. java 分割字符串(多种方法)
  20. 计算机网络智能化在铁路通信的发展,关于接入网技术在铁路通信中的应用

热门文章

  1. 随手记录 OpenMP/omp C++ 下 for 并行 多线程加速
  2. 2022年12月安全事件盘点
  3. 线性代数 --- 向量的长度
  4. 基于MRAM和NVMe的未来云存储解决方案
  5. 《高等工程数学》试题卷二(第一部分,每个题型3道例题,AI出题)
  6. “腊八粥”里的养生智慧
  7. pdf怎么转换成word?三种方法教会你
  8. QT实现点击按钮,切换按钮图片
  9. 根据配送日期,计算到货时间 (客制化自用)
  10. linux:mkdir创建文件夹