浏览器特性检测工具:Modernizr

标签: 前端技术 前端 | 发表时间:2014-05-15 22:47 | 作者:标点符
出处:http://www.biaodianfu.com

10年前,只有最尖端的网站设计师会为网页的布局和修饰使用CSS。那时的浏览器对CSS进行布局的支持既不完善又漏洞百出,所以他们在坚持WEB标准化的同时,不得不采用hacks来使得他们的页面在所有浏览器中都能正常显示。其中一个被使用的最多的hack技术是浏览器嗅探(browser sniffing),使用Javascript里的navigator.userAgent属性来判断用户使用的是什么品牌哪个版本的浏览器。浏览器嗅探技术可以快捷的将代码进行分支,以便针对不同的浏览器应用不同的指令。

今天,以CSS为基础进行的布局已经非常普遍,浏览器们对它的支持也非常的坚实。但是现在CSS3和HTML5来了,历史转了个圈又回到了原地——各个浏览器对这些新技术的支持又开始变得参差不齐了。面对这样的问题,我们该怎么做呢?简单!使用特征检测(feature detection),这意味着我们不必通过问浏览器“你是谁?”来做出不靠谱的推测。取而代之我们问浏览器“你能做这个或那个吗?”。

想要一个个检测浏览器对特性的支持,看上去是个繁琐的工作,好在有了 Modernizr的帮助。Modernizr 是一个用来检测浏览器功能支持情况的 JavaScript 库。 目前,Modernizr 可以检测18项 CSS3 功能以及40多项关于HTML5 的功能。 它比传统检测浏览器名称(浏览器嗅探)的方式更为可靠。 一整套测试的执行时间仅需几微秒。

Modernizr是基于 渐进增强理论来开发的,所以它支持并鼓励开发者一层一层的创建他们的网站。一切从一个应用了Javascript的空闲地基开始,一个接一个的添加增强的应用层。因为使用了Modernizr,所以你容易知道浏览器都支持什么。

Modernizr 可轻松实现 JavaScript 解决方案,即人们熟知的 polyfills——它模拟HTML5 相关功能和技术,如地理定位。 然而,你的确需要对 JavaScript 有基本了解以便使用这些功能和技术。 术语polyfill 来源于一种填补裂缝的黏土的英国品牌Polyfilla(即美国人熟知的填泥料)。 这里,polyfill 用来填补浏览器功能上的漏洞。 有时,Modernizr 可无缝地执行这项任务。 但本质上,这只是一种修补工作,所以,不能依赖它产生无漏洞浏览器所实现的完全相同结果。

Modernizr提供development和production两个版本,development版本包含了对所有HTML5和CSS3新特性的检测,适用于学习和测试,对于刚开始使用Modernizr的新手来说,bella建议你使用这个版本。当你熟悉了Modernizr的工作原理后,你就可以使用production这个自定义版本,你可以只下载任意数量的你需要检测的特性从而大大减小下载量,这在某种程度上是能小幅提高你程序的性能的。你可以在http://modernizr.com/download/上下载这两个版本,点击该页面上的development version链接,就可以下载development版,或者,你已经看到了如下的特性显示页面。

相关资料:

1. Modernizr官网:  http://modernizr.com/docs/

2. Modernizr Test Suite网址: http://modernizr.github.com/Modernizr/test/index.html

3. shim/polyfill脚本的相关信息:  https://github.com/Modernizr/Modernizr/wiki/HTML5-Cross-Browser-Polyfills

4. 各种检测HTML5和CSS3新特性的addTest函数下载地址: https://github.com/Modernizr/Modernizr/tree/master/feature-detects

相关 [浏览器 工具 modernizr] 推荐:

浏览器特性检测工具:Modernizr

- - 标点符
10年前,只有最尖端的网站设计师会为网页的布局和修饰使用CSS. 那时的浏览器对CSS进行布局的支持既不完善又漏洞百出,所以他们在坚持WEB标准化的同时,不得不采用hacks来使得他们的页面在所有浏览器中都能正常显示. 其中一个被使用的最多的hack技术是浏览器嗅探(browser sniffing),使用Javascript里的navigator.userAgent属性来判断用户使用的是什么品牌哪个版本的浏览器.

FontViewOK – 绿色字体浏览器 | 小众软件 > 实用工具

- xyau - 小众软件 - Appinn
FontViewOK 来自德国,列表预览所有字体,直观小巧,免费便携. 下载(54KB): 官方下载 | uudisc | 来自小众软件. ©2011 Thruth for 小众软件 | 原文链接 | 7 留言 | 加入我们 | 投稿 | 订阅指南. Free ChmZoomer – 放大 CHM 的帮助字体.

12款浏览器兼容性测试工具推荐

- Chloe - cnBeta.COM
对于前端开发工程师来说,确保代码在各种主流浏览器的各个版本中都能正常工作是件很费时的事情,幸运的是,有很多优秀的工具可以帮助测试浏览器的兼容性,让我们一起看看这些很棒的工具.

如果浏览器是交通工具... (35 回應)

- gman1988 - Engadget 中国版
Firefox - 改装车,改得好的话马力强跑得快,改不好的话...会长得蛮蠢的 XD. IE - 死马一只,大概也没得医了,但逼不得已的时候拿来代步还是可以的. Safari - 脚踏车,虽然非常有效率,但通常只有骑的人在自我感觉良好. Opera - Smart,有些人爱得要死,但其它人只会觉得它长得很呆.

5 款基于Web浏览器的建模工具

- tinda - ITeye资讯频道
本文介绍5款可以直接在浏览器中使用的很棒的建模工具,无需再单独安装软件. 提供在线图表和协助功能,包含多种建模语言(包括UML)支持,这里有一个简单的演示. Diagram.ly比其他的建模工具功能要少,而且缺少协作方面的功能,但我喜欢它的简单. 在你开始绘制时,你看到的只是一张空白画布,请随意发挥.

Firefox下的浏览器兼容性检测工具——Compatibility Detector

- mingelz - 携程UED
这里给大家推荐一个Firefox下的浏览器兼容性检测工具——Compatibility Detector. 这个工具对于新手来说是非常不错的一个东东,下面我就简单说下它的优点. 作为一个前端开发者来说,最痛苦的事情之一就是要兼容现在各种五花八门的浏览器,而在实际的调试中这个调试过程又是让人劳心劳力.

Zookeeper浏览器工具和Eclipse插件分享

- - Taobao QA Team
         公司很多产品会使用zookeeper,比如Meta消息中间件,在测试的过程中,我们经常需要查询zookeeper里面的信息来精确定位问题. 目前项目中有开发团队自己写的浏览器node-zk-browser,是基于node.js的express.js框架和node-zookeeper客户端实现的,具体可参考 https://github.com/killme2008/node-zk-browser.

10个不错的Chrome浏览器扩展工具

- - VooSee - 拮取生活中的彩虹
我们中的很多人都已经习惯使用浏览器扩展小工具来增强上网体验,无论是FireFox、IE、Chrome都具备强大的扩展功能,就连Safari现在也开始支持工具扩展功能. 在大约两个月前,Google Chrome 浏览器已经超越IE,成为全球最受欢迎的浏览器. 除了具备简单的浏览器同步功能外,Chrome还有超过5万个可扩展工具,这都是Chrome成功的优势.

浏览器开发工具的25个秘密

- - 搜索引擎技术博客
过去几年来,浏览器开发工具一直是 Web 开发者最得力的工具. 它能够与Web浏览器和谐相处,允许我们在当前窗口中实时地操作DOM元素、CSS样式和JavaScript,以及获取一些其他的有用信息. 以前开发者使用Firefox的一个名叫Firebug的扩展,来开发和调试他们的网站. 但是最近,各个浏览器都开发了一套它们自己的工具,并且每一个都有自己的优势和劣势.

12款很棒的浏览器兼容性测试工具推荐

- Kings - 博客园-首页原创精华区
  对于前端开发工程师来说,确保代码在各种主流浏览器的各个版本中都能正常工作是件很费时的事情,幸运的是,有很多优秀的工具可以帮助测试浏览器的兼容性,让我们一起看看这些很棒的工具. 点击你需要测试的浏览器环境,安装插件就可以进行测试了. 帮助你测试网页在Safari、Chrome、Firefox和Opera浏览器中是否正常,IE以前也有的,网站上说应微软的要求去掉了.