【问题标题】:Most common use cases for the HTML5 shiv/shim JS scriptHTML5 shiv/shim JS 脚本的最常见用例
【发布时间】:2012-09-14 22:03:58
【问题描述】:

我经常看到有人建议我包含 HTML5 shiv JS script 以使 HTML5 在 Internet Explorer 中工作,但我无法找到关于这将涵盖的最常见用例的明确解释。

可能有人给出常见场景说明为什么需要这个 JS 脚本?

另外,它是否需要在 <head> 中,或者我可以将它与我的 JS 的其余部分放在 <body> 标记的底部,这样它就不会阻塞 UI 线程?

【问题讨论】:

标签: javascript html internet-explorer shim html5shiv


【解决方案1】:

版本 9 之前的 Internet Explorer 拒绝将任何 CSS 样式应用于它无法识别的 HTML 元素,这包括 HTML5 引入的新元素。通过 JavaScript DOM 创建元素,它突然神奇地意识到元素确实应该设置样式。

您可以编写一个天真而简单的脚本,循环遍历您希望调用document.createElement(tagName) 的一组 HTML5 标记名称。在大多数情况下,这可能对您有用,但是,在 IE 中打印 HTML5 页面并通过 innerHTML 添加 HTML5 内容会导致您出现更多问题,此时最好切换到 shiv。

据我所知,如果您愿意,HTML5 shiv 可以放在头部或正文标记之后。我建议使用条件 cmets,以便只有 IE 加载它。

【讨论】:

  • -@Stuart,非常感谢您的解释,哪些版本的 IE 不能设置 HTML5 元素的样式?您介意将其添加到您的答案中吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-08-17
  • 1970-01-01
  • 2013-01-31
相关资源
最近更新 更多