Сценарии JavaScript в активных страницах Web

         

Второй способ: создание cookie в сценарии JavaScript


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

В общем виде сценарий JavaScript может создать cookie следующим образом:

document.cookie =

  “Имя=Значение;

Здесь мы просто записываем в свойство cookie объекта document текстовую строку, определяющую cookie.

Для пересчета текущей даты в формат GMT в сценариях JavaScript можно использовать встроенные функции, о чем мы скоро расскажем.

В качестве примера приведем исходный текст функции addCookie, которую мы будем использовать в своих сценариях для создания cookie:

function addCookie(szName,szValue,dtDaysExpires)

{

   var dtExpires = new Date();

   var dtExpiryDate = "";

   dtExpires.setTime(dtExpires.getTime() +

     dtDaysExpires * 24 * 60 * 60 * 1000);



   dtExpiryDate = dtExpires.toGMTString();

   document.cookie =

    szName + "=" + szValue + "; expires=" + dtExpiryDate;

}

Функция addCookie получает три параметра.

Через параметр szName передается имя параметра, хранящегося в cookie. Параметр szValue определяет значение этого параметра cookie. Что же касается последнего параметра с именем dtDaysExpires, то он задает интервал времени по отношению к моменту создания cookie, когда этот cookie необходимо удалить.

Самое сложное в функции addCookie - это определение даты удаления cookie и преобразование этой даты в формат GMT. Данная задача решается следующим образом.

Прежде всего функция addCookie создает объект класса Date с помощью ключевого слова new:

var dtExpires = new Date();

Записанная таким образом в переменную dtExpires дата соответствует моменту вызова функции addCookie.

Далее с помощью метода getTime функция addCookie определяет текущую дату в миллисекундах и прибавляет к результату значение параметра dtDaysExpires, полученное функцией, умноженное на константу (24 * 60 * 60 * 1000):


dtExpires.getTime() + dtDaysExpires * 24 * 60 * 60 * 1000

Константа представляет собой количество часов в сутках, умноженное на количество минут в часе, затем на количество секунд в минуте, и, наконец, на количество миллисекунд в секунде.

Результат вычислений записывается при помощи метода setTime в переменную даты dtExpires. Теперь здесь хранится дата автоматического уничтожения cookie браузером. Осталось лишь преобразовать эту дату в формат GMT.

Такое преобразование нетрудно сделать с помощью специально предназначенного для этого метода toGMTString, возвращающего текстовую строку в нужном нам формате:

dtExpiryDate = dtExpires.toGMTString();

Теперь нам остается только сформировать текстовую строку определения cookie и записать ее в свойство document.cookie:

document.cookie =

  szName + "=" + szValue + "; expires=" + dtExpiryDate;

На этом создание cookie завершено.

Теперь, когда в вашем распоряжении есть функция addCookie, создание cookie представляет собой очень простую задачу. Например, в следующей строке мы создаем cookie с именем Count, значением 0, причем через 10 дней браузер автоматически удалит этот cookie:

addCookie("Count","0",10);

При необходимости использования других параметров cookie, таких как path или domain, вы можете немного дополнить текст функции addCookie. С этой задачей вы легко справитесь самостоятельно.


Содержание раздела