Ich mache eine Webseite, die Tasten enthält, um das Thema von hell zu dunkel und zurück auf der Titelseite zu ändern. Wenn ich jedoch auf eine andere Seite klicke, möchte ich, dass das Thema bleibt.Gibt es eine Möglichkeit, das Stylesheet einer Seite basierend auf dem Stylesheet einer anderen Seite zu ändern?
Gibt es eine Möglichkeit, dass ich dem Browser mitteilen kann, die CSS-Datei dynamisch zu wählen, je nachdem, ob der Benutzer das helle oder dunkle Thema verwendet hat?
Denn hier Bezug ist, was ich auf der Titelseite haben:
Javascript:
function swapStyleSheet(sheet, text){
//variables to access elements in the DOM
var styleSheet = document.getElementById('pagestyle');
var defaultText = document.getElementById('styleSwitchText');
styleSheet.setAttribute('href', sheet); //changes the stylesheet
defaultText.style.display = "none"; //hides initial text
//creates p element and appends text parameter to it
var pElement = document.createElement('p');
var textnode = document.createTextNode(text);
pElement.appendChild(textnode);
var item = document.getElementById('swapStyleButtons');
//replaces the text node in the p each time button is clicked
item.replaceChild(pElement, item.childNodes[0]);
}
html:
<div id="swapStyleButtons">
<p id="styleSwitchText">Don't like the style? Try Night Mode!</p>
<button id='night' onclick='swapStyleSheet("dark.css", "Think Night Mode sucks? Switch back!")'>Night</button>
<button id='default' onclick='swapStyleSheet("recipes.css", "Liked it better before? Try Night Mode!")'>Default</button>
</div>
Das funktioniert perfekt auf der Titelseite. Ich könnte diesen Vorgang einfach für die anderen Seiten wiederholen, aber dann müsste der Benutzer den Knopf auf jeder Seite drücken, was natürlich ein bisschen nervig ist.
Kann 1 html Seite auf diese Weise mit einem anderen kommunizieren?
Sind Sie mit einem CMS jeglicher Art, zufällig, kann dies leicht über die Einstellung Session-Variablen erfolgen. Andernfalls müssen Sie Cookies verwenden oder die Variable über die URL übergeben. – Wobbles
Ich verwende kein CMS für diese Übung, nein. Wie gebe ich die Variable über die URL weiter? –
Sie können so etwas verwenden (http://stackoverflow.com/questions/11526102/jquery-append-querystring-to-all-links), um alle Links dynamisch zu bearbeiten und die Variable hinzuzufügen, aber in bestimmten Situationen funktioniert es möglicherweise nicht . Cookies können eine bessere Wette sein. – Wobbles