Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Работа с 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.

Оставить комментарий

Комментарий:
можно использовать BB-коды
Максимальная длина комментария - 4000 символов.
 

Комментарии

1.
99K
18 февраля 2018 года
Эльвира Бурова
0 / / 18.02.2018
+3 / -1
Мне нравитсяМне не нравится
18 февраля 2018, 20:40:16
Здравствуйте. У меня в куки хранятся данные в виде id = 1, nick = User
при записи Вашего кода, где myVar = GetCookie("foo"); у меня const a = getCookie(id);
alert(a); ругается на id (id is not defined at window.onload)
почему так может быть?
1.1.
99K
18 февраля 2018 года
Эльвира Бурова
0 / / 18.02.2018
+1 / -1
Мне нравитсяМне не нравится
18 февраля 2018, 20:45:08
Как обычно мои ошибки - элементарная невнимательность... там же скобки должна быть..блин
Спасибо за код :) все работает!
2.
99K
05 сентября 2017 года
Дмитрий Лисов
1 / / 05.09.2017
+0 / -3
Мне нравитсяМне не нравится
5 сентября 2017, 02:21:58
Вот недавно исправил все свои ошибки в своем редакторе кода, будьте добры, оцените и покритикуйте, буду рад услышать объективную критику. Сайт находится здесь http://ciberfox.ru
3.
92K
14 января 2014 года
alexjn
0 / / 14.01.2014
+3 / -5
Мне нравитсяМне не нравится
14 января 2014, 12:17:29
Проблема такая:
Если кука создавалась к примеру на странице site_name/page1.html , а удаляется на site_name/page2.html то кука не удаляется
4.
91K
25 июня 2013 года
Олександр Рябокінь
0 / / 25.06.2013
+4 / -9
Мне нравитсяМне не нравится
25 июня 2013, 13:31:45
Спасибо. Статья помогла. У меня один вопрос: "Можно ли в cookies сохранять данные игры, написанной на javascript?
5.
84K
20 июля 2012 года
Kont
0 / / 20.07.2012
+26 / -12
Мне нравитсяМне не нравится
20 июля 2012, 16:46:50
как насчёт извлечения куки регуляркой? я понимаю, более затратно по ресурсам, но на порядок читабельнее:


var reg = new RegExp('(?<=' + name + '=).*?(?=\\;)')
return document.cookie.match(reg)
6.
44K
16 октября 2008 года
galo4kin
0 / / 16.10.2008
+27 / -26
Мне нравитсяМне не нравится
16 октября 2008, 21:07:58
Статья действительно помогла - спасибо.
Вот только для уточнения, скажите как передать функции дату (допустим), чтобы кукиса прослужила месяц

и еще... а как удалить кукисы то?! мне при работе переодически нужно обнулять и добавлять их.
7.
33K
20 сентября 2007 года
Xal
0 / / 20.09.2007
+17 / -20
Мне нравитсяМне не нравится
25 октября 2007, 15:09:57
А можно ли вместо куков использовать регистрацию сессий, как это происходит в PHP, без JSHttpRequest?
8.
32K
14 августа 2007 года
Helllen
0 / / 14.08.2007
+12 / -25
Мне нравитсяМне не нравится
14 августа 2007, 15:58:20
Статья что надо! Спасибо
9.
30K
12 июня 2007 года
вялый
0 / / 12.06.2007
+11 / -23
Мне нравитсяМне не нравится
12 июня 2007, 15:17:27
А почему в первом примере идёт path, expires;
А во втором expires, path ?
10.
Аноним
+13 / -43
Мне нравитсяМне не нравится
12 марта 2006, 22:02:11
Вот написал интернет магазин на javasript, теперь нада cookie использовать, на php есть тема, но прикольнее все на JS замутить, тока где-то читал, что не все Броузеры понимают JS запись.чтение кукисов...
11.
Аноним
+15 / -46
Мне нравитсяМне не нравится
25 января 2006, 14:26:29
пасиба автору, статья - тема
12.
Аноним
+16 / -26
Мне нравитсяМне не нравится
17 января 2006, 14:48:26
Спасибо, статья сильно помогла
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог