在HTML 5高歌猛进的今天,各大主流浏览器,如Chrome、Firefox、Opera、Safari等,纷纷在不同程度上支持HTML 5,紧跟时代的步伐;而当Microsoft反应过来的时候,IE已经被远远的甩在后面了。虽然在前不久放出的IE 9 beta中,MS积极地支持了HTML 5,但由于IE 8及以前版本的IE浏览器(尤其是万恶的IE 6)在市场中的份额依旧很大,而MS本身也没有很好的办法让用户升级到更高版本的IE,所以为了兼容这部分用户,多数网站可能会继续对HTML 5持观望态度。
幸运的是,国外的一个叫做remy sharp(笔者并不确定是不是他本人第一个发现)的老外发现了让低版本IE支持HTML 5的办法,原理就是用到HTML 5的标签,如<nav><article>等之前,先执行js脚本:
document.createElement("nav"); document.createElement("article"); //etc...
然后IE就能识别这些新标签了,具体原理未知,但我相信这很可能是IE的一个bug,不过我们依然要感谢IE开发团队的恩赐,给了我们这样一个hack的机会。
而remy sharp本人也给出了一套完整的解决方案(原文地址http://remysharp.com/2009/01/07/html5-enabling-script/),他将比较完善的兼容脚本放置在google code的svn服务器上http://html5shim.googlecode.com/svn/trunk/html5.js ,你的站点如果要使用,只需要在head标签中加入如下代码:
<!--[if lt IE 9]> <script src="http://html5shim.googlecode.com/svn/trunk/html5.js"></script> <![endif]-->
其中<!--[if lt IE 9]>指定了只有版本低于9的IE浏览器才会引用这段脚本,不会对IE9及其他品牌的浏览器产生影响。
非常有趣,对HTML 5感兴趣的朋友可以一试。
See also:
《让IE浏览器兼容HTML5》 at X-Geeker on Google App Engine