我经常看到有人建议我包含HTML5 shiv JS 脚本以使 HTML5 在 Internet Explorer 中工作,但我无法找到关于这将涵盖的最常见用例的明确解释。
有人会给出为什么需要这个 JS 脚本的常见场景吗?
此外,它是否需要放在标签<head>
底部,或者我可以将它与我的 JS 的其余部分放在标签底部,<body>
这样它就不会阻塞 UI 线程?
我经常看到有人建议我包含HTML5 shiv JS 脚本以使 HTML5 在 Internet Explorer 中工作,但我无法找到关于这将涵盖的最常见用例的明确解释。
有人会给出为什么需要这个 JS 脚本的常见场景吗?
此外,它是否需要放在标签<head>
底部,或者我可以将它与我的 JS 的其余部分放在标签底部,<body>
这样它就不会阻塞 UI 线程?
版本 9 之前的 Internet Explorer 拒绝将任何 CSS 样式应用于它无法识别的 HTML 元素,这包括 HTML5 引入的新元素。通过 JavaScript DOM 创建元素,它突然神奇地意识到元素确实应该设置样式。
您可以编写一个简单的脚本,循环遍历您想要调用的 HTML5 标记名称数组document.createElement(tagName)
。在大多数情况下,这可能对您有用,但是,在 IE 中打印 HTML5 页面并通过 innerHTML 添加 HTML5 内容会导致您遇到更多问题,此时最好切换到 shiv。
HTML5 shiv 可以,据我所知,如果您愿意,可以将其放在头部或正文标记之后。我建议使用条件注释,以便只有 IE 加载它。