2016-07-25 18 views
0

Gibt es eine Möglichkeit, eine <link rel="stylesheet" type="text/css"> mit der URL dynamisch ausgewählt basierend auf einigen Javascript-Ausdruck Auswertung hinzufügen?wählen Sie CSS-URL dynamisch über Javascript

(ohne jQuery oder andere externe Bibliothek. - Ich Abhängigkeiten von externen Bibliotheken vermeiden will)

Insbesondere mag ich während oder als Folge von Pageload einige Javascript laufen, anstatt zu einem späteren Zeitpunkt , aber ich möchte sicherstellen, dass das CSS, das ersetzt oder hinzugefügt wurde, als Ergebnis der Ausführung von Javascript geladen wird.

+0

Ich entschuldige mich, wenn dies ein Duplikat ist, habe ich eine Google-Suche, aber war nicht 100% sicher, was zu suchen. –

+2

Versuchen Sie dies: http://StackOverflow.com/Questions/2685614/Load-External-Css-File-Like-Scripts-in-Jquery-Which-ist-Compatible-in-Eie-auch – Toby

+0

das hilft, ich bin Suche nach etwas mit reinem Javascript, keine Bibliotheksabhängigkeiten. Aber ich denke, ich kann es von dort aus herausfinden, sieht nicht so aus, als würde Jquery etwas Besonderes machen. –

Antwort

2

Try this:

Funktion:

function swapStyleSheet(sheet){ 
    document.getElementById('pagestyle').setAttribute('href', sheet); 
} 

Activate:

<button onclick="swapStyleSheet('dark.css')">Dark Style Sheet</button> 
+0

Offensichtlich können Sie 'window.onload' verwenden, damit es beim Laden der Seite statt über eine Schaltfläche ausgeführt wird. – Toby

+0

'pagestyle' ist ein Standard-Crossbrowser-DOM-Element? –

+0

OH, egal, du musst meinen, ich habe die ID wo ich will und benutze Javascript. Das ist schlau. –

2

Sie sind willkommen, um diese Funktion zu versuchen.

function addStylesheet(file) { 
    var 
     head = document.getElementsByTagName("head")[0], 
     style = document.createElement("link"); 
    style.rel = "stylesheet"; 
    style.type = "text/css"; //optional 
    style.href = file; 
    head.appendChild(style); 
} 

addStylesheet("style.css"); 
Verwandte Themen