Javascript Cookie Clicker Spiel speichern geht nicht?
Hi! Ich bin dabei für die Schule das Spiel Cookie Clicker mit Javascript zu programmieren aber habe ein kleines Problem mit dem Speichern. Ich habe versucht die Cookies die man hat in einem cookie (mit document.cookie) zu speichern. Es funktioniert wenn ich speichere und dann die Seite neulade. Wenn ich aber den browser schließe und dann wieder auf laden klicke, funktioniert es nicht. Hat jemand eine Idee? (PS lerne gerade erst Javascript also noch nicht sooo erfahren) Code: http://pastebin.com/WHbKHZ6j
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.
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...
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.
hab auch gerade noch in Chrome probiert geht auch nicht bei browserneustart :/
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.
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?
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.
Das Problem wir haben da zb. das mit document.cookie.split noch nicht gelernt und drfen nur gelernes verwenden :/