说说 JavaScript 对浏览器的怪癖检测
怪癖检测指的是识别浏览器的特殊行为,就是浏览器的缺陷行为。通常是运行一段代码来确定某个特性不能正常工作。
在 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 对浏览器的怪癖检测相关推荐
- JavaScript高级程序设计之客户端检测之怪癖检测第9.2讲笔记
与能力检测类似,怪癖检测(quirks detection)的目标是识别浏览器的特殊行为.但与能力检测确 认浏览器支持什么能力不同,怪癖检测是想要知道浏览器存在什么缺陷( "怪癖" ...
- JavaScript高级程序设计之客户端检测
浏览器检测,是个很让人头痛但又必须要考虑的一个问题.毕竟市面上的浏览器厂商众多,虽然有些标准化的东西约束着他们,但是有些东西,他们还是各自按自己的意愿来.这其中以IE浏览器最为突出,它几乎可以被称之为 ...
- html中获取浏览器窗口宽度,JavaScript 获取浏览器窗口的大小
简明现代魔法 -> JavaScript -> JavaScript 获取浏览器窗口的大小 JavaScript 获取浏览器窗口的大小 2010-04-16 程序演示: 获取浏览器当前窗口 ...
- javascript判断浏览器和终端类型,js如何区分手机、电脑终端和浏览器
判断浏览器类型 复制代码代码如下: if ( window.sidebar && "object" == typeof( window.sidebar ) & ...
- 使用javascript修复浏览器中12个常见而又头痛的问题
简介 使用javascript修复浏览器中12个常见而又头痛的问题,大部分都使用了jQuery的插件来处理的. 我们提倡无论何时都尽可能地使用CSS,这样我们更容易取得成功.现在浏览器对CSS的支持已 ...
- php判段ua限制访问,php实现根据浏览器ua信息检测用户是否用手机(Mobile)访问网站的类...
php实现根据浏览器ua信息检测用户是否用手机(Mobile)访问网站的类 发布于 2015-01-29 13:57:25 | 152 次阅读 | 评论: 0 | 来源: 网友投递 PHP开源脚本语言 ...
- javascript与浏览器学习(一)
待学习---- 20160421 标题:JavaScript中浏览器兼容问题 博客地址:http://www.cnblogs.com/DF-fzh/p/5408241.html 简单 ...
- 分针网——Javascript不同浏览器差异及兼容方法
Javascript不同浏览器差异及兼容方法 javascript的各种兼容就是为了解决不同浏览器的差异性,了解其中的差异能够帮助你更快的解决问题,提高代码的使用质量,编写更优秀的javascript ...
- JavaScript判断浏览器类型及版本
JavaScript判断浏览器类型及版本 你知道世界上有多少种浏览器吗?除了我们熟知的IE, Firefox, Opera, Safari四大浏览器之外,世界上还有近百种浏览器. 几天前,浏览器家族有 ...
最新文章
- Python: 测试函数是否被调用
- php查到的内容追加到html,javascript - 请问php中如何将查询出来的结果数组转化成自己想要的格式,并在前台利用js输出到html中...
- 外媒:iPhone 14全系有望配备120Hz ProMotion显示屏
- Redis:从应用到底层,都在这儿了!
- Missing artifact com.sun:tools:jar:1.5.0解决的方法
- 分布式数据库的最新发展情况
- git学习笔记-(3-linux基本命令)
- 摩拜、ofo抢着用的NB-IoT技术,听说你还不知道!?
- 图像加密标准测试图库
- python 删除文件夹中相似图片
- 中国科学院大学2015年数学分析高等代数考研试题
- html 滑屏 效果,HTML5 web app实现手动页面滑屏效果
- origin与matlab 双向联合数据处理
- 经纬度批量转地址(保姆级教程)
- 马云的顿悟:阿里巴巴在维基经济学中成长
- 网页设计-公用导航栏
- 22个无版权限制的高清无码图库站
- Linux-根目录(/)的意义与内容
- java 分割字符串(多种方法)
- 计算机网络智能化在铁路通信的发展,关于接入网技术在铁路通信中的应用