简体   繁体   中英

HTML5 sessionStorage and XMLDocument

I want to store an XML document in sessionStorage . When I do this it seems to save ok as an XMLDocument . When I try to access it (on a page refresh) the object comes back as [object Object] as opposed to [object XMLDocument] .

How do I get the data out of sessionStorage as an XMLDocument (or convert it to one?)

localStorage and sessionStorage can only hold strings. Have a look at the 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();
};

You cannot store objects unless you serialize them. So in your case, you have to serialize it to XML .

If you received the XML document as text, just store it directly. You can use jQuery.parseXML() to parse it after retrieval.

You may want to serialize XMLDocument before saving it in storage:

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

and then unserialize after loading data from storage:

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

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM