javascript - 如果禁用 JavaScript,则在 IE 8 中回退 HTML 5

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

我最近开始使用 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,您就可以在 head 中使用类似这样的内容:

<script>
    window.history.back();
</script>

因此用户将自动重新返回到上一页。

这是解决这个问题的正确方法吗?或者说,只有 0.26% 的用户值得这么做?

最佳答案

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

如果您真的担心那一小部分,就不要使用 HTML5 标记 - 这并不是说它们会向网站添加任何功能;它们只是在为网站添加任何功能。它们只是用于语义。

如果禁用 Javscript 的 OldIE 用户对您来说非常重要,那么您可以不用 HTML5 标签。

关于javascript - 如果禁用 JavaScript,则在 IE 8 中回退 HTML 5,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13387961/

相关文章:

html - 如何为响应式设计设置 3 列 100% 的垂直边框?

css - 绝对定位的文本在 IE7 中被截断

javascript - DOMParser 在 IE9 中未定义

Javascript - ff 和 ie margin-top 问题

javascript - 如何从一个组件获取另一个组件的值(value)?

javascript - 游戏截图 - 快照

html - 使用加法变换风格化兄弟元素

javascript - fancybox 和响应式文件管理器中的图像预览不起作用(空字符串传递给 getElementById()。)

javascript - Kendo Grid 可编辑行问题

javascript - 为什么我们需要 Angular 指令的链接功能