我正在使用 JavaScript 将样式表动态添加到页面:
document.getElementsByTagName('head')[0].innerHTML += '<link href="/assets/standards/global.css?body=1" media="screen" rel="stylesheet" type="text/css" /><link href="/assets/standards/header.css?body=1" media="screen" rel="stylesheet" type="text/css" /><link href="/assets/standards/footer.css?body=1" media="screen" rel="stylesheet" type="text/css" />';
在 Chrome 下,一切都以适当的样式呈现;在 IE8 和 IE9 下,一切都没有样式渲染。任何想法为什么?
(注意:在我的情况下,不能通过 document.createElement + head.appendChild 注入样式表,所以这不是解决方案。另请注意:在这种情况下我也不能使用 jQuery。)
背景:我在 JavaScript 中添加样式表是因为当文档模式为 < IE9 时我需要添加不同的样式表:
<!--[if gt IE 8]>
<%= javascript_tag do %>
if (document.documentMode < 9) {
// Browser Mode = IE9+, Document Mode = IE8-.
document.getElementsByTagName('head')[0].innerHTML += '<%= stylesheet_link_tag("ie8").gsub("\n", '').html_safe %>';
}
else {
// Browser Mode = IE9+, Document Mode = IE9+.
document.getElementsByTagName('head')[0].innerHTML += '<%= stylesheet_link_tag("core", "widgets").gsub("\n", '').html_safe %>';
}
<% end %>
<![endif]-->