Самоучитель по креативному веб-дизайну. Книга 3, стр.58

свойстве document. cookie пары имен/значений из cookie-наборов, которые мо — гут быть использованы сценариями на Web-странице. Прежде чем вы сможете использовать значение cookie-набора, вам потребуется извлечь значение из стро —

ки всех имеющихся имен и значений cookie-набора в свойстве document. cookie.

Глава 8. JavaScript 43 1





ПРАКТИКУМ

Приведенная ниже JavaScript-функция возвращает значение отдельного cookie — набора из свойства cookie объекта документа:

function cookieValue (FirstChar)

{

// Пары «имя/значение» cookie-набора в свойстве document. cookie

// отделены друг от друга точками с запятой. Найти индекс первой

// точки с запятой после начала значения cookie-набора,

var LastChar = document. cookie. indexOf («;», FirstChar);

if (LastChar == -1)

LastChar = document. cookie. length;

return unescape(document. cookie. substring(FirstChar, LastChar));

}



Функция unescape () в последнем операторе функции cookieValue () преоб — разовывает управляющие последовательности в значении cookie-набора в соот — ветствующие им ASCII-символы. Вспомните: в предыдущем практикуме при сохра —

нении значения cookie-набора вы пользовались функцией escape() . В результате

браузер сохранил «kki@NVBizNet. com» В COOkie-фаЙле каК «kki%40NVBizNet. com».

Функция unescape( ) преобразовывает управляющую последовательность «%40″

обратно в символ @.

Прежде чем вы сможете вызвать функцию cookieValue о, вы должны узнать,

где в строке всех пар имен/значений cookie-набора в document. cooki e начинает —

ся значение требуемого cookie-набора. Следующая функция найдет первый сим — вол в значении cookie-набора, имя которого вы передадите ей в параметре

CookieName. Вызвав функцию cookieValue (), функция getCookieValue () вер — нет значение cookie-набора, соответствующее имени, которое вы передали ей в параметре CookieName:

function getCookieValue (CookieName)

{

CookieName = CookieName + «=»;

var NameLength = CookieName. length;

var CookieLength = document. cookie. length;

var FirstChar = 0;

var LastChar = 0;

while (FirstChar

{

LastChar = FirstChar + NameLength;

if (document. cookie. substring(FirstChar, LastChar) == CookieName)

return cookieValue (LastChar);

// Перейти на 1 символ за пробел между парами «имя/значение» cookie-набора

FirstChar = document. cookie. indexOf (» «/FirstChar) + 1;

if (FirstChar == 0) break;

}

return null;

}

Следовательно, чтобы извлечь значения cookie-набора из свойства

document. cookie по имени, сначала объявите между начальным и конечным дескрипторами сценария ( ) в заголовке Web-страницы функ —

43 2 Глава 8. JavaScript





ЦИИ copkieValu e () И getCookieValu e () . Посл е ЭТОГО ВЫ СМОЖете ВСТавИТЬ СЦе —

нарий, аналогичный приведенному ниже, в тело Web-страницы, чтобы извлечь и отобразить имя, фамилию и адрес e-mail из cookie-набора, которые были сохра — нены в предыдущем практикуме (см. рис. 8.8).



Удаление cookie-набора из cookie-файла

Когда браузер просматривает cookie-файл в поисках cookie-наборов для добав — ления в свойство cooki e объекта документа текущей Web-страницы, он удаляет все cookie-наборы, срок действия которых истек. Помните: когда вы сохраняете cookie-набор, вы сохраняете дату истечения срока действия вместе с именем и значением cookie-набора. Поскольку каждый cookie-набор увеличивает размер cookie-файла и cookie-файл может содержать максимум 200 cookie-наборов на каж — дый домен, следует удалять cookie-наборы, которые больше вам не нужны. Посколь —

ку Web-браузер автоматически удаляет из cookie-файла cookie-наборы с истекшим сроком действия, просто установите дату истечения срока действия cookie-набора, который вы хотите удалить, равной дате и времени когда-нибудь в прошлом.



ПРАКТИКУМ

Объявив приведенную ниже функцию между начальным и конечным дескрипто- рами сценария ( ) в HTML-коде своей Web-страницы (пред — почтительно в заголовочном разделе), вы сможете вызывать функцию

deietecookie() всякий раз, когда вам понадобится удалить cookie-набор:

Глава 8. JavaScript 4 3 3





function DeleteCookie (CookieName)

{

document. cookie = CookieName + «=; expires=Thu, 01 Jan 1970 00:00:01 GMT»;

return;

}

Функция deieteCookie() «заканчивает» срок действия cookie-набора путем установки даты истечения срока действия cookie-набора равной самой ранней

применимой дате (одной секунде пополуночи 1 января 1970 года). Поскольку

сейчас правильное местное время на любом компьютере давно «перевалило» за 1

января 1970 года, вызов deietecookie() приведет к тому, что браузер удалит из cookie-файла тот cookie-набор, имя которого вы передадите функции в параметре CookieName. Предположим, например, вы ранее сохранили cookie-набор с име —

google.com bobrdobr.ru del.icio.us technorati.com linkstore.ru news2.ru rumarkz.ru memori.ru moemesto.ru

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

Вы должны авторизоваться для отправки комментария.

Полезные ссылки
Случайные записи
  • 18.05.2010">Самоучитель по креативному веб-дизайну. Книга 2, стр.57
  • 22.02.2011">Руководство по actionscript. часть 7, стр. 043
  • 09.05.2010">Самоучитель по креативному веб-дизайну. Книга 1, стр.170
  • 11.05.2010">Самоучитель по креативному веб-дизайну. Книга 1, стр.39
  • 22.01.2011">Руководство по actionscript. часть 1, стр. 142
  • 15.06.2010">Самоучитель по креативному веб-дизайну. Книга 4, стр.38
  • 12.08.2010">Как подают информацию о владельце, команде
  • 18.07.2010">Лучшие модули для сайта
  • 03.03.2011">Руководство по actionscript. часть 5, стр. 074
  • 09.05.2010">Самоучитель по креативному веб-дизайну. Книга 1, стр.132
  • 09.05.2010">Самоучитель по креативному веб-дизайну. Книга 1, стр.161
  • 25.02.2011">Руководство по actionscript. часть 6, стр. 081
  • 22.03.2011">Руководство по actionscript. часть 2, стр. 002
  • 27.10.2011">Топ 10 полезных плагинов для JQuery
  • 17.06.2010">Самоучитель по креативному веб-дизайну. Книга 4, стр.12
Опрос

Какие цвета вы предпочитаете?

View Results

Loading ... Loading ...