Вход/Регистрация
JavaScript. Подробное руководство, 6-е издание
вернуться

Флэнаган Дэвид

Шрифт:

this.getltem = function(name) { return cookies[name] || null; };

// Сохраняет значение

this.setltem = function(key, value) {

if (!(key in cookies)) { // Если cookie с таким именем не существует

keys.push(key); // Добавить ключ в массив ключей

this.length++; // И увеличить значение length

}

// Сохранить пару имя/значение в множестве cookies.

cookies[key] = value;

// Установить cookie.

// Предварительно декодировать значение и создать строку

// имя=кодированное-значение

var cookie = key + "=" + encodeURIComponent(value);

// Добавить в строку атрибуты cookie

if (maxage) cookie += ";
max-age=" + maxage;

if (path) cookie += ";
path=" + path;

// Установить cookie с помощью свойства document.cookie

document.cookie = cookie;

}

// Удаляет указанный cookie

this.removeItem = function(key) {

if (!(key in cookies)) return; // Если не существует, ничего не делать

// Удалить cookie из внутреннего множества cookies

delete cookies[key];

// И удалить ключ из массива имен.

// Это легко можно было бы сделать с помощью метода indexOf массивов,

// определяемого стандартом ES5.

for(var і = 0; і < keys.length; i++) { // Цикл по всем ключам

if (keys[i] === key) { // При обнаружении ключа

keys.splice(i,1); // Удалить его из массива,

break;

}

}

this.length--; // Уменьшить значение length

// Наконец фактически удалить cookie, присвоив ему пустое значение

// и истекший срок хранения.

document.cookie = key + "=; max-age=0";

};

20.3. Механизм сохранения userData в IE

В IE версии 5 и ниже поддерживается механизм сохранения данных на стороне клиента, доступный в виде нестандартного свойства

behavior
элемента документа. Использовать его можно следующим образом:

var memory = document.createElement("div"); // Создать элемент

memory.id = "_memory”; // Дать ему имя

memory.style.display = "none"; // He отображать его

memory.style.behavior = "url('#default#userData')"; // Присоединить свойство

document.body.appendChild(memory); // Добавить в документ

После того как для элемента будет определено поведение «userData», он получает новые методы

load
и
save.
Вызов метода
load
загружает сохраненные данные. Этому методу можно передать строку, напоминающую имя файла и идентифицирующую конкретный пакет хранящихся данных. После загрузки данных пары имя/значение становятся доступны в виде атрибутов элемента, получить которые можно с помощью метода
getAttribute
. Чтобы сохранить новые данные, необходимо установить атрибуты вызовом метода
setAttribute
и затем вызвать метод
save.
Удалить значение можно с помощью методов
removeAttribute
и
save.
Ниже приводится пример использования элемента
memory
, инициализированного выше:

  • Читать дальше
  • 1
  • ...
  • 389
  • 390
  • 391
  • 392
  • 393
  • 394
  • 395
  • 396
  • 397
  • 398
  • 399
  • ...

Ебукер (ebooker) – онлайн-библиотека на русском языке. Книги доступны онлайн, без утомительной регистрации. Огромный выбор и удобный дизайн, позволяющий читать без проблем. Добавляйте сайт в закладки! Все произведения загружаются пользователями: если считаете, что ваши авторские права нарушены – используйте форму обратной связи.

Полезные ссылки

  • Моя полка

Контакты

  • chitat.ebooker@gmail.com

Подпишитесь на рассылку: