Javascript Cookie Clicker Spiel speichern geht nicht?

2 Antworten

Probier mal folgendes:

1. Füge diese Javascript Funktion hinzu:

function getCookie(name){
var _cookies = document.cookie.split(';');
for(var i = 0; i < _cookies.length; ++i){
_cookie = _cookies[i].split('=', 2);
if(_cookie[0] === name) return _cookie.length == 2 ? _cookie[1] : '';
}
return null;
}

2. Passe die "laden" Funktion an:

function laden(){
var _cookies = getCookie('cookies');
if(_cookies) cookies = _cookies;
}

3. Passe die "save" Funktion an:

function save(){
document.cookie = 'cookies='+cookies+';max-age=31536000';
}

Damit sollte das ganze laufen.

Das Problem wir haben da zb. das mit document.cookie.split noch nicht gelernt und drfen nur gelernes verwenden :/

0
@Hallo1812

WTF? Ihr kriegt also eine Aufgabe gestellt, und dürft nicht die Mittel benutzen, die notwendig sind, um diese zu erfüllen?

Dann bleibt nur noch dieses (ziemlich fehleranfällige) Workaround:

function save(){
document.cookie = cookies+';max-age=31536000';
}
function laden(){
if(document.cookie !== ''){
cookies = document.cookie;
}
else{
cookies = 0;
}
}

Und alles andere lassen, wie es ist...

P.S.: Meine Vermutung, bzgl. des Problems ist, dass der verwendete Browser bei einem Cookie ohne Angabe des Gültigkeitszeitraumes den Cookie nur für die laufende Session behält. Soll heissen: Browser geschlossen = Cookie gelöscht...

P.P.S.: Frag ggf. mal deinen Lehrer (bzw. deine Lehrerin, oder was auch immer ;), ob es nicht machbar wäre, wenigstens die gebräuchlisten Grundlagen zu lernen, bevor ihr euch an ein Projekt begebt...

1

Dein Code arbeitet bei mir korrekt. Vermutlich hat das was mit den Browser Sicherheitseinstellungen zu tun. Rufst du die Datei über einen Webserver auf?

Nein local am Pc mit Firefox. hab auch schon geschaut ob der browser cookies löscht bei Neustart aber eig nicht.

0
@Hallo1812

hab auch gerade noch in Chrome probiert geht auch nicht bei browserneustart :/

0
@Hallo1812

Es geht darum, dass der Browser sich anders verhält, wenn die Datei nicht von einem Webserver kommt. => Wenn du es beispielsweise auf einem Apache auf dem Rechner liegen hättest ginge es.

0
@Snapstromegon

Hmm kann man das irgendwie machen das es geht? Da es ein Programm für ein Schulprojekt ist was ich vorstellen muss kann ich ja schwer dann in der Schule am Pc nen Server machen?

0
@Hallo1812

Die Seite neuladen geht ja und den Rest kannst du ja erklären, dass es am Browser liegt. Ansonsten kannst du auch über GitHub / Google Drive / Codepen / JSFiddle die Sachen hosten. Dann geht es immer.

1

Was möchtest Du wissen?