调用html5.js实现IE(包括IE6)支持HTML5元素

微软的最新浏览器IE8及以下IE版本对HTML5标签的支持是有限的,我们可以通过在网页中添加脚本的方式来解决目前IE浏览器对HTML5支持的问题。

让IE(包括IE6)支持HTML5元素,我们需要在HTML头部添加以下JavaScript,这是一个简单的document.createElement_x声明,利用条件注释针对IE来调用这个js文件。Opera,FireFox等其他非IE浏览器就会忽视这段代码,也不会存在http请求。

<!–[if IE]>
<script src=”http://html5shiv.googlecode.com/svn/trunk/html5.js”></script>
<![endif]–>
上面这段代码仅会在IE浏览器下运行,还有一点需要注意,在页面中调用html5.js文件必须添加在页面的head元素内,因为IE浏览器必须在元素解析前知道这个元素,所以这个js文件不能在页面底部调用。

这个html5的js文件是作者把他放在Google code project上提供给大家可以直接调用的,如果觉得这样会影响你的网页打开速度,可以把html5的js文件直接下载下来让后上传到自己的服务器单独调用。

以下是html5的js文件中的代码:

(function(){if(!0)return;var e = "abbr,article,aside,audio,canvas,datalist,details,dialog,
eventsource,figure,footer,header,hgroup,mark,menu,meter,nav,
output,progress,section,
time,video".split(','),i=e.length;while(i–){document.createElement_x(e[i])}})()
除了在网页中调用包含以上代码的js文件来让IE浏览器支持HTML5元素以外,你也可以以下面这种方式把代码直接添加到网页中。

<!–[if IE]>
<script>
(function(){if(e = "abbr,article,aside,audio,canvas,datalist,details,dialog,
eventsource,figure,footer,header,hgroup,mark,menu,meter,nav,
output,progress,section,
time,video".split(','),i=e.length;while(i–){document.createElement_x(e[i])}})()
</script>
<![endif]–>
IE开发经理艾德里安巴特曼(Adrian Bateman )就曾表示,IE团队希望分享自己对HTML5的看法,并参与制定该标准的讨论。巴特曼表示,尽管目前IE团队更多是提出问题,而非给出解决办法,但是公开讨论正是推动HTML5发展的最佳方式。

关键词: ie6 html5 ie