Работа с COOKIE на Javascript

JavaScript поддерживает встроенный объект с именем document.cookie для работы с кукисам. Этот объект хранит все кукисы, доступные для страницы, с которой запущен скрипт.

Создание cookie на javascript

Если вставить значение в document.cookie, то будет создан кукис:

<SCRIPT LANGUAGE="JavaScript">
   document.cookie="foo=bar; path=/; expires=Mon, 01-Jan-2001 00:00:00 GMT";
</SCRIPT>

Мы же напишем функцию, которая будет принимать каждый параметр отдельно, а не одной строкой. Значения name и value являются обязательными, а остальные не обязательны.

<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>

Пример использования функции:

<SCRIPT LANGUAGE="JavaScript">
   setCookie("foo", "bar", "Mon, 01-Jan-2001 00:00:00 GMT", "/");
</SCRIPT>

Получение значения cookie на javascript

Для получения значения кукисов в JavaScript, можно воспользоваться document.cookie. Обычно, document.cookie имеет строку следующего формата:

foo=bar;this=that;somename=somevalue;.....

Эта строка содержит пары имя=значение, разделённые точкой с запятой. Как видите, это крайне не удобно, поэтому напишем функцию, которая выполняла бы разбор строки и возвращала необходимое значение по имени cookie:

<SCRIPT LANGUAGE="JavaScript">
   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);
   }
</SCRIPT>

Теперь получить значение cookie по ее имени проще простого:

<SCRIPT LANGUAGE="JavaScript">
   myVar = GetCookie("foo");
</SCRIPT>