Ich lade dynamisch ein CSS-Stylesheet (mit ein wenig Hilfe von jQuery) wie folgt:
var head = document.getElementsByTagName('head')[0];
$(document.createElement('link'))
.attr({ type: 'text/css', href: '../../mz/mz.css', rel: 'stylesheet' })
.appendTo(head);
Dies funktioniert gut in Firefox und Google Chrome, aber nicht in IE.
Irgendeine Hilfe? Vielen Dank
javascript
jquery
html
css
internet-explorer
Pistacchio
quelle
quelle
Antworten:
Sobald der IE alle mit der Seite geladenen Stile verarbeitet hat, können Sie nur mit ein weiteres Stylesheet zuverlässig hinzufügen
document.createStyleSheet(url)
Weitere Informationen finden Sie im MSDN-Artikel zu createStyleSheet.
url = 'style.css'; if (document.createStyleSheet) { document.createStyleSheet(url); } else { $('<link rel="stylesheet" type="text/css" href="' + url + '" />').appendTo('head'); }
quelle
<style>your style here</style>
und das Hinzufügen zu <head> auch im IE funktioniert.Sie müssen den href attr zuletzt und erst einstellen, nachdem das Linkelement an den Kopf angehängt wurde:
$('<link>') .appendTo('head') .attr({type : 'text/css', rel : 'stylesheet'}) .attr('href', '/css/your_css_file.css');
Aktualisieren
Heutzutage besteht der einzige Zweck von IE und Edge darin, Chrome herunterzuladen. Ich empfehle daher, Ihren Code NICHT mit benutzerdefinierter Unterstützung für IE oder Edge aufzublähen und stattdessen deren Existenz zu ignorieren.
quelle
Dies scheint auch im IE zu funktionieren:
quelle
Dies könnte auch etwas damit zu tun haben - Aus dem Microsoft Support-Artikel :
quelle
Es scheint, dass
$('<link rel="stylesheet" type="text/css" href="' + url + '" />').appendTo('head');
funktioniert auch im IE, solange die URL eine vollqualifizierte URI einschließlich des Protokolls ist ...
quelle
Öffnen Sie ie8, ohne dass der Debugger geöffnet ist. Wenn Sie nach dem Punkt des dynamischen Stylesheets ... Debugger und Voila öffnen, sollten sie dort sein.
quelle