Работа с Cookies на JavaScript
Создание cookies в JavaScript
JavaScript поддерживает встроенный объект с именем document.cookie для работы с кукисам. Этот объект хранит все кукисы, доступные для страницы, с которой запущен скрипт.
Если вставить значение в document.cookie, то будет создан кукис:
<SCRIPT LANGUAGE="JavaScript"> document.cookie="foo=bar; path=/; expires=Mon, 01-Jan-2001 00:00:00 GMT"; </SCRIPT>
Для работы с кукисами можно воспользоваться функций SetCookie:
<SCRIPT LANGUAGE="JavaScript"> function setCookie (name, value, expires, path, domain, secure) { document.cookie = name + "=" + escape(value) + ((expires) ? "; expires=" + expires : "") + ((path) ? "; path=" + path : "") + ((domain) ? "; domain=" + domain : "") + ((secure) ? "; secure" : ""); } </SCRIPT>
Значения name и value являются обязательными, а остальные не обязательны. Ниже приведён пример использования этой функции:
<SCRIPT LANGUAGE="JavaScript"> setCookie("foo", "bar", "Mon, 01-Jan-2001 00:00:00 GMT", "/"); </SCRIPT>
Функция SetCookie довольно универсальна, в тех случаях, когда нужно создать много кукисов, либо когда требуется устанавливать параметры на лету.
Получение значения cookies в JavaScript
Для получения значения кукисов в JavaScript, можно воспользоваться document.cookie. Обычно, document.cookie имеет строку следующего формата:
foo=bar;this=that;somename=somevalue;.....
Эта строка содержит пары имя=значение, разделённые точкой с запятой. Ниже приведена функция getCookie(), которая позволяет осуществить разбор параметров этой строки:
function getCookie(name) { var cookie = " " + document.cookie; var search = " " + name + "="; var setStr = null; var offset = 0; var end = 0; if (cookie.length > 0) { offset = cookie.indexOf(search); if (offset != -1) { offset += search.length; end = cookie.indexOf(";", offset) if (end == -1) { end = cookie.length; } setStr = unescape(cookie.substring(offset, end)); } } return(setStr); }
Вот пример использования этой функции:
myVar = GetCookie("foo");
В данном случае значение переменной myVar будет равно bar.
Оставить комментарий
Комментарии
при записи Вашего кода, где myVar = GetCookie("foo"); у меня const a = getCookie(id);
alert(a); ругается на id (id is not defined at window.onload)
почему так может быть?
Спасибо за код :) все работает!
Если кука создавалась к примеру на странице site_name/page1.html , а удаляется на site_name/page2.html то кука не удаляется
var reg = new RegExp('(?<=' + name + '=).*?(?=\\;)')
return document.cookie.match(reg)
Вот только для уточнения, скажите как передать функции дату (допустим), чтобы кукиса прослужила месяц
и еще... а как удалить кукисы то?! мне при работе переодически нужно обнулять и добавлять их.
А во втором expires, path ?