I'm adding stylesheets dynamically to a page using 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" />';
Under Chrome, everything renders with proper styling; under IE8 and IE9, everything renders without styling. Any ideas why?
(Note: In my situation, it's not an option to inject stylesheets via document.createElement + head.appendChild, so that's not a solution. Also note: I cannot use jQuery in this situation, either.)
Background: I am adding stylesheets in JavaScript because I need to add a different stylesheet when the Document Mode is < 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]-->