Javascript Cookie beim neu laden verhindern?
Hallo,
Wie kann ich verhindern, dass der Cookie beim neu Laden der Seite verhindert wird? Denn immer, wenn ich am Anfang den Namen des Besuchers abfrage, wird dieser nicht nur immer beim neuen betreten der Website gezeigt, sondern auch, wenn man die Seite neu lädt. Wie kann ich das verhindern?
Vielen Dank!
Hier mein Code:
<!DOCTYPE html>
<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
</head>
<body onload="checkCookie()">
<input type = "button" onclick = "setCookie('anwender','',-1)" value = "Cookie
löschen">
<h1>Website Test-Cookie</h1>
<script>
function setCookie(cookieName,inhalt,dauer) {
let datum = new Date();
datum.setTime(datum.getTime() + (dauer*24*60*60*1000));
let ablaufdatum = "expires=" + datum.toGMTString();
document.cookie = cookieName + "=" + inhalt + ";" + ablaufdatum;
}
function getCookie(cookieName) {
cookieName += "=";
let decCookie = decodeURIComponent(document.cookie);
let arr = decCookie.split(';');
for(let i = 0; i < arr.length; i++) {
let inhalt = arr[i];
while (inhalt.charAt(0) == ' ') {
inhalt = inhalt.substring(1);
}
if (inhalt.indexOf(cookieName) == 0) {
return inhalt.substring(cookieName.length);
}
}
return "";
}
function checkCookie() {
let anwender = getCookie("anwender");
if (anwender != "") {
alert("Hallo " + anwender + "!");
$("h1").hide();
}
else {
anwender = prompt("Geben Sie bitte Ihren Namen ein:");
$("h1").show();
if (anwender != "" && anwender != null) {
setCookie("anwender", anwender, 180);
}
}
}
</script>
</body>
</html>
1 Antwort
Von gutefrage auf Grund seines Wissens auf einem Fachgebiet ausgezeichneter Nutzer
HTML, JavaScript
Wie kann ich verhindern, dass der Cookie beim neu Laden der Seite verhindert wird?
Das ist jetzt eine ziemlich verwirrende Frage :-/
Ich ahne aber was du willst. Testest du das ganze lokal, indem du nur die HTML-Datei im Browser aufrufst oder in einem Webserver?
Beim Aufruf lokaler Dateien speichern die meisten Browser keine Cookies, weshalb dein Script den Namen dann immer wieder abfragt. Im Webserver sollte das funktionieren.
Woher ich das weiß:Berufserfahrung – Entwickle Webseiten seit über 25 Jahren.