请参阅问题底部的解决方案。
IE 8(及更低版本)不适用于未知元素(即HTML5元素),无法设置其样式或访问其大部分道具。例如,他们有很多解决方法:http : //remysharp.com/2009/01/07/html5-enabling- script/
问题是,这对于页面加载时可用的静态HTML效果很好,但是当一个人随后创建HTML5元素时(例如,包含它们的AJAX调用,或者只是使用JS创建),它将按HTMLUnknownElement原样标记这些新添加的元素到HTMLGenericElement(在IE调试器中)。
HTMLUnknownElement
HTMLGenericElement
有谁知道可以解决的方法,以便IE 8可以识别/启用新添加的元素?
这是一个测试页:
<html><head><title>TIME TEST</title> <!--[if IE]> <script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script> <![endif]--> <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js" type="text/javascript"></script> </head> <body> <time>some time</time> <hr> <script type="text/javascript"> $("time").text("WORKS GREAT"); $("body").append("<time>NEW ELEMENT</time>"); //simulates AJAX callback insertion $("time").text("UPDATE"); </script> </body> </html>
在IE中,您将看到:UPDATE和NEW ELEMENT。在任何其他现代浏览器中,您将看到UPDATE和UPDATE
对于IE7中的所有html5问题,我都使用html5shiv,为了适应ajax调用中返回的html5元素,我使用innershiv。
到目前为止,这两个小插件对我来说就像一个魅力。
-Praveen Gunasekara