Искам да запазя XML документ в sessionStorage
, Когато направя това, изглежда, че спасявам добре като XMLDocument
, Когато се опитам да получа достъп до него (на страница за опресняване), обектът се връща като [object Object]
за разлика от [object XMLDocument]
.
Как да извадя данните от sessionStorage
като XMLDocument
(или да го конвертирате в едно?)
Отговори:
2 за отговор № 1localStorage
и 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");