如何给不支持新特性的浏览器打补丁(让老版本IE兼容新特性)

摘要:
最值得称赞的一点是,它使用Modernizr的加载功能,只加载实际需要的补丁。如果您在本机支持HTML5新功能的浏览器中查看网页,则只会在网页中添加少量冗余代码。修补的好处并不局限于较旧的浏览器。正如我们所知,许多浏览器没有完全实现HTML5的表单功能。例如,在Safari中,当提交带有空白必填项的HTML5表单时,将不会出现警告信息。现在,浏览器中缺少的新功能将通过相关补丁脚本自动添加。
一个非常棒的 JavaScript 框架叫做 Modernizr(http://www.modernizr. com),用于向缺少 HTML5/CSS3特性支持的浏览器打补丁。由 Alexander Farkas编写的
“Webshims Lib”(http://afarkas.github.com/webshim/demos/)就是构建于 Moderniz和无处 不在的 jQuery之上的,它可用于插入表单补丁(也可以为其他 HTML5特性打补丁),从
而使不支持新特性的浏览器可以处理 HTML5 表单。最值得称道的一点是,它利用了 Modernizr 的加载功能,能做到只加载实际所需的补丁。如果在原生支持 HTML5 新特性
的浏览器中查看网页,则仅会给网页加入一丁点儿冗余代码。而对于老版本浏览器,虽 然它们需要加载更多的代码(因为它们本身能力不足),但通过相关 JavaScript 方法的辅
助,它们能提供基本一致的用户体验。 通过打补丁受益的不仅仅只是老版本浏览器。我们知道,现在的很多浏览器也没有完全
实现 HTML5 的表单特性。在网页中引入 Webshims Lib 可以弥补这些浏览器的缺陷。例 如在 Safari中,提交一个必填项为空的 HTML5表单时不会有任何警告信息。其实这个表
单根本不会提交,但它也没给用户任何反馈,这一点都不人性化。在页面中引入 Webshims
Lib 后,上述问题会得到弥补:
 

 
首先下载 Webshims Lib(http://github.com/aFarkas/webshim/downloads)并解压。然后将
其中的 js-webshim 文件夹复制到相应的位置。为简便起见,本例中我将其拷贝到网站的
根目录,然后在页面的 <head> 部分加入如下代码:
<script src="http://t.zoukankan.com/js/jquery-1.7.1.js"></script>
<script src="http://t.zoukankan.com/js-webshim/minified/extras/modernizr- custom.js"></script>
<script src="http://t.zoukankan.com/js-webshim/minified/polyfiller.js"></script>
 
<script>
//加载补丁
$.webshims.polyfill();
</script>
分析一下这段代码。首先引入了一个本地的 jQuery库文件(可以在 www.jquery.com上下
载最新版本):
<script src="http://t.zoukankan.com/js/jquery-1.7.1.js"></script>
接着,又引入了 Webshims Lib所包含的 Modernizr以及补丁相关的 JavaScript文件:
<script src="http://t.zoukankan.com/js-webshim/minified/extras/modernizr-custom.js"></script>
<script src="http://t.zoukankan.com/js-webshim/minified/polyfiller.js"></script>
最后,使用初始化脚本来加载所需的补丁:
<script>
//加载补丁
$.webshims.polyfill();
</script>
搞定。现在,浏览器缺失的新功能都会通过相关补丁脚本被自动追加进来了。
 
 
 

转载请注明出处!

http://www.cnblogs.com/libingbin/

感谢您的阅读。如果文章对您有用,那么请轻轻点个赞,以资鼓励。

免责声明:文章转载自《如何给不支持新特性的浏览器打补丁(让老版本IE兼容新特性)》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇MySQL3:索引MYSQL 触发器下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

单片机中断的IE和IP寄存器(摘抄)

收藏 评论(0) 分享到 微博 QQ 微信 LinkedIn 一、中断允许寄存器IE    CPU对中断源的开放或中断屏蔽的控制是通过中断允许寄存器IE设置的,IE既可按字节地址寻址(其字节地址为A8H),又可按位寻址。AT89S52单片机中的6个中断矢量都是可屏蔽中断,通过对IE的某些位置位和清0,允许或禁止某个中断,当对IE的EA位清0时...

【转】linux 定时执行shell脚本

在oracle 中可以利用dbms_job包定时执行pl/sql、sql过程,在像备份等需要在操作系统级定时任务只能采用crontab来完成 本文讲述crontab具体用法,以供备忘. 在oracle 中可以利用dbms_job包定时执行pl/sql、sql过程,在像备份等需要在操作系统级定时任务只能采用crontab来完成 利用crontab来定时执行任...

使用shell脚本实现用ping检查刀片服务器与主服务器之间的网络连通

为了检查daq01与刀片服务器之间的网络连接状态, 1. 使用ping命令的输出规律,如果可以ping通,会输出0% packet loss值; 如果不能ping通,则不会输出0% packet loss 2. 若ping命令输出0% packet loss执行成功,则表示网络连接正常,否则网络连接不上 3. shell脚本里的&&与 ||...

.Net魔法堂:史上最全的ActiveX开发教程——ActiveX与JS间交互篇

一、前言                             经过上几篇的学习,现在我们已经掌握了ActiveX的整个开发过程,但要发挥ActiveX的真正威力,必须依靠JS。下面一起来学习吧! 二、JS调用ActiveX方法                     只需在UserControl子类中(即自定义的ActiveX控件中),编写公共方法即可...

IE 浏览器各个版本 JavaScript 支持情况一览表

摘自:http://www.open-open.com/lib/view/open1387415311921.html 不同版本的 Internet Explorer 浏览器支持不同的 JavaScript 元素集。标准模式(有 <!doctype> 指令时 Internet Explorer 所有当前版本中使用的模式)支持的一组元素与突发模式...

linux开机自启动

linux下添加简单的开机自启动脚本 在linux的使用过程中,我们经常会碰到需要将某个自定义的应用程序设置为开机自启动以节省操作时间,这里提供两个设置开机自启动的方法。 注:博主使用的ubuntu-16.04进行实验,其它版本可能有偏差,但实现原理类似。 rc.local 在rc.local脚本中添加开机自启动程序 ubuntu在开机过程之后,会执行/e...