Книга: JavaScript. Подробное руководство, 6-е издание
20.2.3. Чтение cookies
20.2.3. Чтение cookies
Когда свойство cookie
используется в JavaScript-выражении, возвращаемое им значение содержит все cookies, относящиеся к текущему документу. Эта строка представляет собой список пар имя = значение, разделенных точками с запятой и пробелами. Значение не включает какие-либо атрибуты, которые могли быть установлены для cookie. При работе со свойством document.cookie
обычно приходится использовать метод split(),
чтобы разбить его значение на отдельные пары имя/значение.
После извлечения значения cookie из свойства cookie
его требуется интерпретировать, основываясь на том формате или кодировке, которые были указаны создателем cookie. Например, cookie можно передать функции decodeURIComponent(),
а затем функции JSON.parse().
В примере 20.1 определяется функция getCookie(),
которая анализирует свойство document.cookie
и возвращает объект, свойства которого соответствуют парам имя/значение всех cookies в документе.
Пример 20.1. Анализ свойства document.cookie
// Возвращает cookies документа в виде объекта с парами имя/значение.
// Предполагается, что значения cookie кодируются с помощью
// функции encodeURIComponent().
function getCookies() {
var cookies = {}; // Возвращаемый объект
var all = document.cookie; // Получить все cookies в одной строке
if (all === "") // Если получена пустая строка,
return cookies; // вернуть пустой объект
var list = all.split("; "); // Разбить на пары имя/значение
for(var і = 0; і < list.length; i++) { // Для каждого cookie
var cookie = list[і];
var p = cookie.indexOf(”="); // Отыскать первый знак =
var name = cookie, substrings, p); // Получить имя cookie
var value = cookie.substring(p+1); // Получить значение cookie
value = decodeURIComponent(value); // Декодировать значение
cookies[name] = value; // Сохранить имя и значение в объекте
}
return cookies;
}
- 20.2. Cookies
- 4.4.3. Чтение и запись
- Работа с Cookies
- У файла и каталога есть атрибуты (например: Скрытый, Только чтение). Как ими управлять из командной строки?
- 12.5. Чтение «битых» компакт-дисков
- 19.2.4. Чтение и запись значений элементов HTML-форм
- 19.2.5. Чтение и запись содержимого элемента
- 19.2.1. Чтение и запись значений HTML-атрибутов
- 3.4 ЧТЕНИЕ И ЗАПИСЬ ДИСКОВЫХ БЛОКОВ
- 3.2.1.8. Пример: чтение строк произвольной длины
- 3.2.1.9. Только GLIBC: чтение целых строк: getline() и getdelim()
- 5.3. Чтение каталогов