HTML5 sessionStorage и XMLDocument - PullRequest
       36

HTML5 sessionStorage и XMLDocument

1 голос
/ 15 февраля 2012

Я хочу сохранить документ XML в sessionStorage.Когда я делаю это, кажется, что все в порядке как XMLDocument.Когда я пытаюсь получить к нему доступ (при обновлении страницы), объект возвращается как [object Object], а не [object XMLDocument].

Как мне получить данные из sessionStorage как XMLDocument (или конвертировать в один?)

Ответы [ 2 ]

2 голосов
/ 15 февраля 2012

Вы можете захотеть сериализовать XMLDocument перед сохранением его в хранилище:

var xml = new XMLSerializer().serializeToString(originalDom);
sessionStorage.setItem("myDocument", xml);

и затем десериализовать после загрузки данных из хранилища:

var xml = sessionStorage.getItem("myDocument");
var restoredDom = new DOMParser().parseFromString(xml, "text/xml");
2 голосов
/ 15 февраля 2012

localStorage и sessionStorage могут содержать только строки.Взгляните на определение интерфейса :

interface Storage {
  readonly attribute unsigned long length;
  [IndexGetter] DOMString key(in unsigned long index);
  [NameGetter] DOMString getItem(in DOMString key);
  [NameSetter] void setItem(in DOMString key, in DOMString data);
  [NameDeleter] void removeItem(in DOMString key);
  void clear();
};

Вы не можете хранить объекты, если не сериализовали их.Так что в вашем случае вы должны сериализовать его в XML .

Если вы получили XML-документ в виде текста, просто сохраните его напрямую.Вы можете использовать jQuery.parseXML() для анализа после извлечения.

...