Работа с Cookies
Получить доступ к cookies можно через следующий код:
document.cookie
Код выше вернёт примерно следующую строчку:
"cookie_name=Сохранённая+информация; cookie_second=Вторая+сохранённая+информация"
Добавить или изменить cookie в JavaScript можно через следующий код:
document.cookie = "cookie_third=Значение"
Код выше не заменяет текущее значение document.cookie
, а добавляет новое значение, если указанного cookie не существует.
Созданная cookie будет доступна только в JavaScript. В серверных языках, например в PHP, получить cookie из JavaScript нельзя. При этом, само свойство document.cookie
содержит cookies, созданные в PHP.
Разбить cookies на массив можно через метод split()
.
var cookie = {}; document.cookie.split("; ").map(function(item){ var split = item.split("="); cookie[split[0]] = split[1];}); cookie['cookie_name']; // Сохранённая+информация cookie['cookie_second']; // Вторая+сохранённая+информация
Не все cookies доступны через метод document.cookie
. Некоторые cookies создаются с параметром httponly (например в PHP), который запрещает чтение cookies через JavaScript.
Страницы для cookies
По умолчанию, cookies создаются для всех страниц текущего раздела. Например, если текущая страница «post/javascript», то cookies будут доступны для «post/any-page» и просто для «post/».
Указать страницу сохранения cookies можно через параметр path
.
// создание cookie для страницы «/post/page» document.cookie = "name=Значение; path=/post/page"
Код выше создаст cookie, которая будет доступна только на странице «post/page». Причём необязательно находиться на самой странице «post/page» чтобы создать эту cookie, её можно создать на любой странице.
Чтобы создать cookie, которая будет доступна на указанных подразделах, можно использовать код ниже:
// создание cookie для страниц «/post/» document.cookie = "name=Значение; path=/post/"
Код выше создаст cookie для всех подстраниц «post/». Например «post/javascript» или «post/any-page».
Чтобы создать cookie, которая будет доступна на всех страницах, можно использовать «path=/».
// создание cookie для всех страниц document.cookie = "name=Значение; path=/"
Продолжительность cookie
По умолчанию cookie, созданная через JavaScript, хранится до закрытия браузера.
Указать продолжительность cookie можно через параметр expires
.
document.cookie = "name=Значение; expires=Sat, 05 May 2018 18:58:39 GMT"
Лёгкий способ указать срок активности cookie можно через объект Date()
.
// Указать срок активности cookie на один день var date = new Date; date.setDate(date.getDate() + 1); document.cookie = "name=Значение; expires=" + date.toUTCString();
Удалить cookie
Чтобы удалить cookie, надо указать её путь, в которой он был создан и продолжительность меньше текущей даты.
var date = new Date(0); document.cookie = "name=Значение; path=/post/page; expires=" + date.toUTCString();
Стоит обратить внимание, что если cookie была создана на «path=/post/page», то надо указывать именно этот путь. Если указать «path=/», то cookie не удалится.
Проверить, что у пользователя включены cookie
Проверить, что у пользователя включены cookie можно через команду navigator.cookieEnabled
, которая возвращает булево значение (true или false).
Авторизуйтесь, чтобы добавлять комментарии