Работа с cookie через JavaScript


Иногда требуется работа с cookie через JavaScript. Например, cookie может быть альтернативным вариантом обмена данными между PHP и JavaScript. Допустим, JavaScript записывает в cookie пользователя его текущее время на компьютере (то есть его местное время), а PHP эти данные считывает и учитывает смещение относительно серверного времени. А теперь давайте разберём, как работать с cookie через JavaScript. Единственное, что есть в JavaScript для работы с cookie - это свойство cookie объекта document: <script type="text/javascript"> alert(document.cookie); </script> В результате запуска этого кода выведутся все cookie от данного сайта, причём в определённом формате. Выглядит это примерно так: "name=123; login=456". На что здесь стоит обратить внимание? На то, что все cookie имеют, разумеется, имя и значение, а сами cookie разделены друг с другом точкой с запятой и пробелом. Зная этот формат, Вы можете легко вытащить значение нужной переменной. Чтобы добавить через JavaScript ещё одну переменную, надо написать следующий код: <script type="text/javascript"> document.cookie = "new=5"; </script> Обратите внимание, что именно "=", а не "+=". В данном случае, Вы не стираете все существующие cookie, а добавляете новую переменную. Что касается удаления cookie, то здесь можно использовать тот факт, что имеется возможность указать время жизни cookie. И если указать, что она должна была закончиться год назад, то cookie будет немедленно удалена. Чтобы у Вас было полное представления о работе с cookie через JavaScript, показываю код всех 3 функций для управления cookie, а также пример их использования: <script type="text/javascript"> function setCookie(name, value) { document.cookie = name + "=" + value; } function getCookie(name) { var r = document.cookie.match("(^|;) ?" + name + "=([^;]*)(;|$)"); if (r) return r[2]; else return ""; } function deleteCookie(name) { var date = new Date(); // Берём текущую дату date.setTime(date.getTime() - 1); // Возвращаемся в "прошлое" document.cookie = name += "=; expires=" + date.toGMTString(); // Устанавливаем cookie пустое значение и срок действия до прошедшего уже времени } setCookie("firstname", "Вася"); // Устанавливаем cookie alert(getCookie("firstname")); // Выводим cookie deleteCookie("firstname"); // Удаляем cookie alert(getCookie("firstname")); // Убеждаемся, что ничего не осталось </script> Вот такую простейшую библиотеку Вы можете использовать при работе с cookie через JavaScript.