HTML5会话存储和XMLDocument

HTML5 sessionStorage and XMLDocument

本文关键字:XMLDocument 存储 会话 HTML5      更新时间:2023-09-26

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

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

您可能需要在将XMLDocument保存到存储中之前对其进行序列化:

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

然后在从存储器加载数据后取消序列化:

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

localStoragesessionStorage只能容纳字符串。看看接口定义:

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()对其进行解析。