Gibt es eine Möglichkeit, CSS aus einer Zeichenfolge in der Javascript-Datei zum Kopf eines Dokuments mit Javascript hinzuzufügen?
Angenommen, wir haben eine Webseite mit einem Lightbox-Skript. Für dieses Skript ist eine CSS-Datei erforderlich.
<link>Wenn Sie nun diese CSS-Datei mit hinzufügen, wird die CSS-Datei auch für Personen heruntergeladen, für die js nicht aktiviert ist.
Ich weiß, dass ich die CSS-Datei dynamisch mit dem Skript laden kann, aber das bedeutet auch, dass es 2 http-Anforderungen gibt, und in Fällen, in denen wenig bis gar kein CSS in der Datei vorhanden ist, finde ich dies ineffizient.
Also dachte ich mir, was wäre, wenn Sie das CSS, das Sie in der CSS-Datei haben, in das Skript einfügen, das Skript das CSS analysieren und in den Kopf einfügen könnten, oder noch besser, das Skript das CSS direkt hinzufügen lassen sollte das <head>des Dokuments.
Aber ich habe online nichts gefunden, was darauf hindeutet, dass dies möglich ist. Ist es also möglich, dem Kopf mit js CSS hinzuzufügen?
Bearbeiten + LÖSUNG:
Ich habe Roryfs Antwort bearbeitet, um browserübergreifend zu arbeiten (außer IE5).
Javascript:
function addcss(css){
var head = document.getElementsByTagName('head')[0];
var s = document.createElement('style');
s.setAttribute('type', 'text/css');
if (s.styleSheet) { // IE
s.styleSheet.cssText = css;
} else { // the world
s.appendChild(document.createTextNode(css));
}
head.appendChild(s);
}