Как добавить в HTML5 localStorage? - PullRequest
       12

Как добавить в HTML5 localStorage?

5 голосов
/ 07 октября 2011

Я делаю

localStorage.setItem('oldData', $i("textbox").value);

для установки значения ключа oldData равным значению в текстовом поле.

В следующий раз, когда что-то будет введено в текстовое поле, я хочу добавить к уже существующему oldData.

Итак, если я введу яблоки , а затем апельсины в моем текстовом поле, мой ключ localStorage oldData должен выглядеть следующим образом:

Первоначально:

Key      |   Value
---------------------------
oldData  |  apples

Сейчас:

oldData  |  apples oranges

Как я могу добавить? Предоставляется ли метод append?

Или мне сначала нужно прочитать данные, добавить в javascript, а затем записать обратно?

Ответы [ 3 ]

15 голосов
/ 07 октября 2011

Нет функции append. Это не сложно написать хотя бы:

function appendToStorage(name, data){
    var old = localStorage.getItem(name);
    if(old === null) old = "";
    localStorage.setItem(name, old + data);
}

appendToStorage('oldData', $i("textbox").value);

Примечание: имеет смысл определить функцию append для объекта localStorage. Однако , поскольку localStorage имеет setter, это невозможно. Если вы пытались определить функцию, используя localStorage.append = ..., объект localStorage будет интерпретировать эту попытку как «Сохранить объект с именем append в объекте хранилища» .

7 голосов
/ 07 октября 2011

Это не хорошее решение, но оно работает и продуктивно.

localStorage.setItem("fruit", "Apples"); 

localStorage.setItem("fruit", localStorage.getItem("fruit") + "Orange");
1 голос
/ 07 октября 2011

Я нашел это здесь :

interface Storage {
  readonly attribute unsigned long length;
  DOMString? key(unsigned long index);
  getter DOMString getItem(DOMString key);
  setter creator void setItem(DOMString key, DOMString value);
  deleter void removeItem(DOMString key);
  void clear();
};

Похоже, что он имеет только getItem, setItem, removeItem, clear, key и length.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...