我想在sessionStorage
中存储XML文档。当我这样做时,它似乎保存为XMLDocument
。当我尝试访问它时(在页面刷新时),对象返回[object Object]
而不是[object XMLDocument]
。
如何将sessionStorage
中的数据作为XMLDocument
(或将其转换为一个?)
答案 0 :(得分:2)
localStorage
和sessionStorage
只能包含字符串。看看interface definition:
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();
};
除非您将对象序列化,否则无法存储对象。所以在你的情况下,你必须serialize it to XML。
如果您将XML文档作为文本收到,请直接存储。您可以使用jQuery.parseXML()
在检索后解析它。
答案 1 :(得分: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");