web-dev-qa-db-fra.com

Vérifiez si le cookie existe sinon paramétrez le cookie pour qu'il expire dans 10 jours

Voici ce que je cherche à faire (pseudo-code):

Imaginez que le nom du cookie dans l'exemple est "visité" et qu'il ne contient rien.

if visited exists
then alert("hello again");
else
create visited - should expire in 10 days;
alert("This is your first time!")

Comment puis-je y parvenir en JavaScript?

22
Learning

Vous devez lire et écrire document.cookie

if (document.cookie.indexOf("visited=") >= 0) {
  // They've been here before.
  alert("hello again");
}
else {
  // set a new cookie
  expiry = new Date();
  expiry.setTime(expiry.getTime()+(10*60*1000)); // Ten minutes

  // Date()'s toGMTSting() method will format the date correctly for a cookie
  document.cookie = "visited=yes; expires=" + expiry.toGMTString();
  alert("this is your first time");
}
67
if (/(^|;)\s*visited=/.test(document.cookie)) {
    alert("Hello again!");
} else {
    document.cookie = "visited=true; max-age=" + 60 * 60 * 24 * 10; // 60 seconds to a minute, 60 minutes to an hour, 24 hours to a day, and 10 days.
    alert("This is your first time!");
}

est une façon de le faire. Notez que document.cookie est une propriété magique, vous n'avez donc pas à vous soucier d'écraser quoi que ce soit.

Il y a aussi bibliothèques plus pratiques pour travailler avec les cookies , et si vous n'avez pas besoin que les informations que vous stockez soient envoyées au serveur à chaque demande, HTML5's localStorage et amis sont pratiques et utiles.

21
Ry-