Hier ist die "Old School" Art, es zu tun, die hoffentlich über alle Browser funktioniert. In der Theorie würden Sie setAttribute
verwenden, leider IE6 unterstützt es nicht konsequent.
In diesem Beispiel wird überprüft, ob das CSS bereits hinzugefügt wurde, sodass es nur einmal hinzugefügt wird.
Setzen Sie diesen Code in eine Javascript-Datei, lassen Sie den Endbenutzer einfach das Javascript einfügen, und stellen Sie sicher, dass der CSS-Pfad absolut ist, so dass er von Ihren Servern geladen wird.
VanillaJS
Hier ist ein Beispiel, das schlicht JavaScript verwendet einen CSS-Link in das head
Element zu injizieren, basierend auf dem Dateinamen Teil der URL:
<script type="text/javascript">
var file = location.pathname.split("/").pop();
var link = document.createElement("link");
link.href = file.substr(0, file.lastIndexOf(".")) + ".css";
link.type = "text/css";
link.rel = "stylesheet";
link.media = "screen,print";
document.getElementsByTagName("head")[0].appendChild(link);
</script>
Sie den Code ein kurz vor dem Schließen head
tag und das CSS wird geladen, bevor die Seite gerendert wird. Wenn Sie eine externe JavaScript-Datei (.js
) verwenden, wird ein Flash mit unsterblichen Inhalten (FOUC) angezeigt.
Es wird auch die Frage über jQuery http://stackoverflow.com/questions/2685614/load-external-css-file-like -scripts-in-jquery-was-ist-kompatibel-in-ie-auch – jcubic