互联网浏览器8(Internet Explorer 8)是否支持HTML 5?

138

IE8支持HTML5吗?它是否在IE8的路线图中?


HTML 5仍然是一份草案。这意味着它可能发生任何事情。它的开发甚至可能像XHTML 2一样停止。 - Gumbo
37
希望IE8之后不会再有IE浏览器,也希望没有人会因此受到冒犯。 - Eastern Monk
不仅是HTML5,IE8也是并且将永远是草案! - MEM
13个回答

79

IE8 beta 2支持HTML5的两个API:跨文档通信非SQL存储

IE8 beta 2不实现HTML5解析算法或新元素(不支持<canvas><video>)。

还有一些修复了与HTML5对齐的错误。


43
答案是,就所有实际目的而言,IE8并没有完全支持HTML5 - 只是其中的一些零散部分。这使得使用HTML5(指HTML标记语言,而非脚本API)毫无意义。 - Roland Tepp
如果您想在IE 8中获得HTML 5支持,则可以下载名为“Chrome Frame”的IE插件。它可以像Google Chrome一样呈现HTML 5!更多信息请参见:http://appleinsider.com/articles/09/09/24/google_sneaks_webkit_html_5_support_into_internet_explorer - Shadowpat
1
Chrome Frame已于2014年2月25日停止支持并退役(http://www.chromium.org/developers/how-tos/chrome-frame-getting-started)。 - Ricardo

72

通过在head中添加此JavaScript代码,您可以使HTML5标签在IE8中正常工作。

<script type="text/javascript">
 document.createElement('header');
 document.createElement('nav');
 document.createElement('menu');
 document.createElement('section');
 document.createElement('article');
 document.createElement('aside');
 document.createElement('footer');
</script>

1
你找到这篇文章的参考资料了吗?谢谢 +1 - BuddyJoe
谢谢,这对我的部分元素起作用了,我删除了其余的所有内容。你是从哪里知道这个的? - mist
请查看以下链接:http://www.developerdrive.com/2011/12/the-usefulness-of-the-document-createelement/ - arame3333
1
你可能可以使用JavaScript通过创建自定义JS组件来实现HTML5的许多功能(对于新表单元素,您需要绑定一些功能),但添加SQL数据库是不可能的,还有其他一些HTML5功能。我个人建议,在IE8应用程序中避免使用HTML5。 - josiah
1
@BuddyJoe,请查看MDN网站上“在非HTML5浏览器中使用HTML5元素”部分,链接在此:https://developer.mozilla.org/en-US/docs/Web/Guide/HTML/Using_HTML_sections_and_outlines - Florent Paillot
显示剩余2条评论

43

2
应该指出,这并不能解决某些JavaScript用法的问题。例如,以下代码将无法正常工作:var div = document.createElement('div'); div.innerHTML = '<section>test</section>';我们最终得到 div.childNodes.length = 2。我在使用jQuery时遇到了这个问题,并一直试图弄清楚IE中发生了什么。 - Nick Spacek
2
吹毛求疵:脚本的名称为“shiv”(手工制作的监狱刀),而不是“shim”。 - Mikko Rantalainen
6
严谨地说,作者同时使用了“shim”和“shiv”这两个词。该项目称为“html5shim”。引用自http://code.google.com/p/html5shim/:常见问题:html5shim和html5shiv之间有什么区别?答案是:没有区别,一个多了个m,一个多了个v - 就是这样。 - John

25

Modernizr是让IE具备HTML5渲染能力的绝佳选择。


6
从Modernizer首页 - Modernizr不会为浏览器添加缺失的功能,而是检测功能的本机可用性,并为您提供一种方式来保持对您的网站的精细控制,无论浏览器的能力如何。 - Ira Miller
10
难以相信这个回答会有这么多的负评,我点赞来反转其中一条。Modernizr或许并没有为浏览器增加任何功能,但它(连同其他很多有用的东西一起)确实包含了HTML5 Shim功能,这在其他回答中也提到过,并且得到了很高的评分。 - Spudley
Modernizer与polyfill(http://www.modernizr.com/docs/#polyfills)结合使用,似乎可以为HTML5功能添加兼容性支持。但是,必须启用JavaScript。 - Mikko Rantalainen
1
难以相信这个帖子获得了这么多的赞。Modernizr包含一个名为shiv的附加库,使ie能够理解HTML5标签,同时Modernizr包含特性检测,但与HTML5无关。因此,如果您想让ie理解HTML5,使用shiv更为合理,因为Modernizr会过度。基本上,正如您所建议的那样,Modernizr并不是一个很好的选择。 - yakya
关于上面的评论 - 它确实支持旧版IE以正确呈现文档,它可能不提供html5播放器功能或3D渲染等,但对于依赖css样式正确继承并使用新的html5标签的常规网站,它完美地完成了工作。它还修复了一些呈现问题并扩展了一些CSS支持:通过添加过滤器添加rgba()支持和其他内容,这简化了开发人员的生活 - 这些琐碎的事情现在总是必须编写以覆盖旧的有缺陷的微软浏览器... - Vasil Popov

17

它支持吗?

<!DOCTYPE html>

是的,它支持。

也许更好的问题是IE8支持哪些现代Web功能。回答这个问题的最佳途径之一是caniuse.comhtml5test.combrowserscope.org

HTML5对于不同的人意味着很多不同的东西。如今,它意味着HTML、CSS和JavaScript功能。这个术语正在变得有点像“Web 2.0”。


12

8

IE8的HTML5支持有限,但是Internet Explorer 9已经发布,并且对于新兴的HTML5技术有强大的支持。


5

HTML5仍处于草案规范阶段(并且将在很长一段时间内保持这种状态)。为什么要费心呢?


10
这个问题已经存在将近15个月了,你是第一个提到HTML 5仍然是一份草案的人。 - Gumbo
5
好观点。为什么要费心呢?帮助网络并不会对微软有所帮助。因此,Silverlight 和一个不太好的浏览器。 - BuddyJoe
10
@Gumbo - C语言的(第一个)规范直到1989年才完成。你会等到那时才使用它吗?到那时它已经在工业界占据了主导地位。为什么要费心呢?我想这取决于你是否想充分利用今天的平台所能提供的最大价值。否则,为什么不永远使用HTML 3.2甚至2.0呢? - Justin
2
@Justin 不是这样的。标准通常只是记录了实际上已经在实践中成为事实标准的内容。 - Gumbo

4

查看caniuse指南,了解所有浏览器和版本中的HTML 5功能,包括未来版本。


4
您可以使用此方法使IE8理解/支持基本的HTML5标签。
<!--[if lt IE 9 ]> 
    <script type="text/javascript">
        var html5Elem = ['header', 'nav', 'menu', 'section', 'article', 'aside', 'footer'];
        for (var i = 0; i < html5Elem.length; i++){
            document.createElement(html5Elem[i]);
        }
    </script>
<![endif]-->

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接