HTML5 sessionStorage和XMLDocument

时间:2012-02-15 12:55:48

标签: javascript html5 sessionstorage

我想在sessionStorage中存储XML文档。当我这样做时,它似乎保存为XMLDocument。当我尝试访问它时(在页面刷新时),对象返回[object Object]而不是[object XMLDocument]

如何将sessionStorage中的数据作为XMLDocument(或将其转换为一个?)

2 个答案:

答案 0 :(得分:2)

localStoragesessionStorage只能包含字符串。看看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");