Wert eines Cookies auslesen mit Javascript

Yolo

Grünschnabel
Hallo liebe Community!

Mein Problem sieht folgendermaßen aus: Ich habe auf meiner Website einen Styleswitcher eingebaut. Damit kann ich jetzt per Buttonklick zwischen 2 verschieden CSS-Stylesheets (Sommer und Winter-Style) wechseln und zwischen 2 verschiedenen Schriftgrößen. Das Problem aber ist das Folgende: wenn ich zwischen den Seiten hin und her wechsle 'merkt' sich die Seite nicht welcher Style gerade aktiv ist. Darum hab ich es schon geschafft 2 Cookies anzulegen. Ein Mal mit dem Namen Style und dem Inhalt Somer oder Winter und ein mal mit dem Namen Groesse und dem Inhalt Gross oder Klein.

Nun zu meinem eigentlichen Problem. Ich möchte jetzt, dass beim Laden jeder Seite beide Cookies ausgelesen werden und dann die richtige CSS-Datei eingebunden bzw. die Schriftgröße laut Cookie gewählt wird. Hier der Code den ich bereits habe:

HTML:
<head>

<script type="text/javascript">
function getCookie() {
HIER BRAUCHE ICH HILFE!
}

function setGross () {
  document.body.style.fontSize = "85%";
}
function setKlein () {
  document.body.style.fontSize = "80%";
}

function setCookieSommer(){
    document.cookie = "Style=Sommer";
}
function setCookieWinter(){
    document.cookie = "Style=Winter";
}
function setCookieKlein(){
	document.cookie = "Groesse=Klein"; 
}
function setCookieGross(){
	document.cookie = "Groesse=Gross"; 
}
</script>

</head>

<body>

<a href="javascript:setStyle('sommer')" onclick="setCookieSommer();">Sommer</a>
<a href="javascript:setStyle('winter')" onclick="setCookieWinter();">Winter</a>
<a href="javascript:setGross();" onclick="setCookieGross();">Groß</a>
<a href="javascript:setKlein()" onclick="setCookieklein();"> Klein</a>

</body>

Vielen Dank im Voraus!

Euer
Stefan
 
Zuletzt bearbeitet:

tombe

Erfahrenes Mitglied
Du hast da ein ziemliches Durcheinander in deinem Code.

Javascript:
<script type="text/javascript">
function getCookie() {
	if (document.cookie){
		alert (document.cookie);
	}
}

function setStyle(wert){
    document.cookie = "Style=" + wert;
}

function setGroesse(wert){
	document.cookie = "Groesse=" + wert;
}
</script>

<a href="javascript:setStyle('Sommer')">Sommer</a>
<a href="javascript:setStyle('Winter')">Winter</a>
<a href="javascript:setGroesse('Gross');">Groß</a>
<a href="javascript:setGroesse('Klein')"> Klein</a>
<a href="javascript:getCookie()"> Get Cookie</a>
 

Yolo

Grünschnabel
Das hilft mir jetzt aber nicht wirklich weiter. Ich möchte ja nicht alle Cookies auslesen mit der Funktion document.cookie sondern jeweils den Wert eines bestimmten Cookies.
 

tombe

Erfahrenes Mitglied
Du solltest dich vielleicht erstmal mit der Cookie-Funktion beschäfftigen damit du verstehst wie sie arbeitet.

Zum Beispiel hier wird es recht gut beschrieben, auch ein Beispiel wo mehrere Werte gespeichert werden!
 

Yolo

Grünschnabel
Jetzt hätt ich mal diese Funktion zusammengebastelt, kann mir irgendjemand erklären warum es trotzdem noch nicht funktioniert?

HTML:
<head>

<script type="text/javascript">
function getCookie() {
   var allcookies = document.cookie;
   cookiearray  = allcookies.split(';');
   for(var i=0; i<cookiearray.length; i++){
   name = cookiearray[i].split('=')[0];
   value = cookiearray[i].split('=')[1];
   if (name = "Style", value = "Somer") {
       <link href="../style_sommer.css" title="sommer" rel="stylesheet" type="text/css" />
   }
       <link href="../style_winter.css" title="winter" rel="stylesheet" type="text/css" />
   }
}
<body onload="getCookie()">
</script>

</head>

<body>

<a href="javascript:setStyle('sommer')" title="Style: Sommer" onclick="setCookieSommer(); getCookie();">Sommer</a> 
<a href="javascript:setStyle('winter')" title="Style: Winter" onclick="setCookieWinter(); getCookie();">Winter</a> 

</body>
 

tombe

Erfahrenes Mitglied
1) ist der IF-Block falsch

Javascript:
if (name == "Style" && value == "Sommer")

2) prüfst du auf "Somer", gespeichert wird aber der Wert "Sommer"

3) passiert mit der Anweisung innerhalb des IF-Blocks nichts da diese auch falsch ist.