/ / HTML5 sessionStorage и XMLDocument - javascript, html5, sessionstorage

HTML5 sessionStorage и XMLDocument - javascript, html5, sessionstorage

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

Как да извадя данните от sessionStorage като XMLDocument (или да го конвертирате в едно?)

Отговори:

2 за отговор № 1

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() да го анализира след извличане.


2 за отговор № 2

Може да искате да сериализирате XMLDocument, преди да го съхраните в хранилището:

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

и след това да се смени след като сте заредили данните от хранилището:

var xml = sessionStorage.getItem("myDocument");
var restoredDom = new DOMParser().parseFromString(xml, "text/xml");