Hier ist die "alte Schule", die hoffentlich in allen Browsern funktioniert. Theoretisch würden Sie setAttribute
IE6 leider nicht konsequent unterstützen.
var cssId = 'myCss'; // you could encode the css path itself to generate id..
if (!document.getElementById(cssId))
{
var head = document.getElementsByTagName('head')[0];
var link = document.createElement('link');
link.id = cssId;
link.rel = 'stylesheet';
link.type = 'text/css';
link.href = 'http://website.com/css/stylesheet.css';
link.media = 'all';
head.appendChild(link);
}
In diesem Beispiel wird überprüft, ob das CSS bereits hinzugefügt wurde, sodass es nur einmal hinzugefügt wird.
Fügen Sie diesen Code in eine Javascript-Datei ein, lassen Sie den Endbenutzer einfach das Javascript einfügen und stellen Sie sicher, dass der CSS-Pfad absolut ist, damit er von Ihren Servern geladen wird.
VanillaJS
Hier ist ein Beispiel, das einfaches JavaScript verwendet, um einen CSS-Link head
basierend auf dem Dateinamen-Teil der URL in das Element einzufügen:
<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>
Fügen Sie den Code unmittelbar vor dem schließenden head
Tag ein und das CSS wird geladen, bevor die Seite gerendert wird. Die Verwendung einer externen JavaScript ( .js
) - Datei führt dazu, dass ein Flash mit nicht gestylten Inhalten ( FOUC ) angezeigt wird .