【问题标题】:Fall Back For HTML 5 in IE 8 if JavaScript Disabled如果禁用 JavaScript,则在 IE 8 中回退 HTML 5
【发布时间】:2012-11-15 06:15:52
【问题描述】:

我最近开始使用 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”。可以工作,但除非你能让它非常明显,否则它可能不会在乱七八糟的文字和内容中看到。

既然head中的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% 的用户提供服务?

【问题讨论】:

    标签: javascript html internet-explorer internet-explorer-8


    【解决方案1】:

    老实说,我认为你的最后一行总结了它 - 不值得努力。我们都放弃了对 IE6 和 IE7 的支持,而它们的百分比仍然高于此。

    如果您真的很担心那一小部分,请不要使用 HTML5 标签——它们并不是在向网站添加任何功能;它们只是为了语义。

    如果禁用了 JavaScript 的 OldIE 用户对您来说很重要,那么您可以不用 HTML5 标记。

    【讨论】:

    • 谢谢!我完全同意。我只是想看看其他人是否有任何想法。但如果他们不这样做,我会选择这个,因为我认为它是金色的。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-06-20
    • 2012-02-01
    • 2013-05-07
    • 1970-01-01
    • 2012-08-14
    • 1970-01-01
    • 2023-03-26
    相关资源
    最近更新 更多