我最近开始使用HTML 5而不是XHTML,我看到了很多好处。它更干净,更简单,更易于使用。标签更好,元素更有意义,它只是一种更好,更简单的编码方式。
然而,IE 8及以下版本不支持回退。要使其工作,您必须使用HTML 5 JavScript shiv。除非用户关闭了JavaScript,否则这很有用。
在这里做一些非常粗略的数学,如果大约13%的用户使用IE 8并且关闭(截至2012年11月14日)并且2%的用户禁用了他们的JavaScript,那么0.26%的用户使用旧版浏览器关闭了他们的JavaScript。这将导致HTML 5网站中断。 Progressive Enhancement的负责人表示,一个网站仍然应该与JS禁用,但在这种情况下,网站根本不会工作 - 它会破坏并变成乱码。
一个noscript标签,上面写着“请打开你的JavaScript”。可以工作,但除非你能说得非常明显,否则它可能不会出现在文本和内容的混乱中。
由于头部中的noscript标记在HTML 5中有效,以下是解决此问题的正确方法吗?
<!DOCTYPE HTML>
<html>
<head>
<noscript>
<!--[if lte IE 8]>
<meta http-equiv="refresh" content="0"; ,URL=http://www.example.com/no-js">
<![endif]-->
<noscript>
</head>
总结上面的代码,代码检查用户是否禁用了他们的JavaScript,然后检查它是否为IE 8并关闭,如果是,则重定向到另一个页面。
重定向页面可以用XHTML制作,并解释该网站是用HTML 5制作的,并且需要在旧浏览器中启用JavaScript才能正确运行。然后,一旦用户启用了他们的JavaScript,你就可以在头脑中使用这样的东西:
<script>
window.history.back();
</script>
因此,用户将自动重新发送回上一页。
这是正确的方法吗?或者它甚至值得所有用户的0.26%?
答案 0 :(得分:4)
老实说,我认为你的最后一句话总结了 - 不值得努力。我们都放弃了对IE6和IE7的支持,而它们仍处于比这更高的百分比。
如果你真的担心这个百分比的一小部分,就不要使用HTML5标签 - 这并不是说他们在网站上添加任何功能;他们只是出于语义。
如果禁用Javscript的OldIE用户对您很重要,那么您可以不使用HTML5标记。