Проверьте, существует ли cookie, иначе установите срок действия cookie на 10 дней - PullRequest
22 голосов
/ 23 мая 2011

Вот что я хочу сделать (псевдокод):

Представьте, что имя файла cookie в примере "посещено" и ничего не содержит.

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

Как мне добиться этого в JavaScript?

Ответы [ 2 ]

66 голосов
/ 23 мая 2011

Вам нужно прочитать и написать 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");
}
21 голосов
/ 23 мая 2011
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!");
}

это один из способов сделать это. Обратите внимание, что document.cookie является магическим свойством, поэтому вам не нужно беспокоиться о перезаписи чего-либо.

Есть также более удобных библиотек для работы с куки , и если вам не нужна информация, которую вы храните, отправленная на сервер при каждом запросе, HTML5 localStorage и друзья удобны и полезны.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...