javascript - 帮助旧浏览器支持 HTML5 标签的非 JavaScript 解决方案

标签 javascript html modernizr

我很清楚使用 HTML5 的注意事项并且仍然需要支持旧浏览器(阅读 IE8 和更低版本)...您需要添加 shiv 或 Modenizr 或类似的东西以使您的小网站尊重和标签。

我对此很满意,但前几天有人对我说他们没有使用 HTML5 标签,因为显然你需要 JS 才能使 IE8 与这些标签很好地兼容。我已经看到了没有加载 Modenizr 时会发生什么(我偶尔会玩高级 JS 并破坏它,这会停止 Modenizr 加载)。

现在我个人认为这是一个不必要的声明,因为关闭 JS 的浏览器 IE8 和更低版本的 useshare 可能代表您用户群的 0.000001%(特别是考虑到这是由不支持 JS 的人告诉我的)或测试 IE7 及更低版本)。

但我想知道如果您想在关闭 JS 的非 HTML5 浏览器中支持 HTML5 标签,有哪些解决方案。还是我的上述假设非常准确,真的不值得考虑?

最佳答案

对不起。在不使用 Javascript 的情况下,在 IE8 中使用 HTML5 标签没有很好的解决方案。

HTML5Shiv 和 Modernizr 利用了唯一已知的黑客攻击,可以让 IE 以可用于现​​代 HTML5 网站的方式识别未知标签。

通过将整个文档转换为 xhtml 并为 HTML5 标签使用不同的命名空间,这在某种程度上是可能的——参见 http://www.webstack.co.uk/html5_without_javascript_ie8/举个例子。

但是,这些技术并不理想,因为 IE 存在带有未知标记的错误,这些错误完全超出了能够正确呈现它们的基本错误。在诸如动态内容和打印等领域,它们还有一些其他错误,这些错误由 HTML5Shiv hack 处理,而不是由像这样的命名空间 hack 处理的。

底线:html5shiv 就是答案。如果您确实需要支持禁用了 Javascript 的 IE8 用户,请考虑完全不使用 HTML5 标签。

关于javascript - 帮助旧浏览器支持 HTML5 标签的非 JavaScript 解决方案,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12982071/

相关文章:

javascript - 如何使用动画颜色变化突出显示搜索词

javascript - 单击单选按钮时,我想用 Ajax 调用 Spring MVC 的 Controller

jquery - CSS + Jquery如何让一个div浮在其他div内容之上

Javascript 逻辑 在循环/if 语句中

Javascript,原型(prototype)不继承

javascript - 使用 ngSanatize 的 HTML5 音频和 Angular 双向绑定(bind)问题

javascript - html5 输入类型编号 : detect whether spinbox or not (and no other features)

HTML5shiv vs Dean Edwards IE7-js vs Modernizr——选择哪个?

javascript - Bootstrap 2 或 3 Modal 中的 Kendo Grid - IE 过滤器不起作用

javascript - 如何在 JavaScript 中编写扩展方法?