Javascript HTML5会话存储和XMLDocument
我想在Javascript HTML5会话存储和XMLDocument,javascript,html,sessionstorage,Javascript,Html,Sessionstorage,我想在sessionStorage中存储XML文档。当我这样做时,它似乎将ok保存为XMLDocument。当我尝试访问它时(在页面刷新时),对象返回为[object object],而不是[object XMLDocument] 如何将sessionStorage中的数据作为XMLDocument(或将其转换为一个?localStorage和sessionStorage只能保存字符串。请看一下: 除非序列化对象,否则无法存储对象。所以在你的情况下,你必须这样做 如果您将XML文档作为文本接收,
sessionStorage
中存储XML文档。当我这样做时,它似乎将ok保存为XMLDocument
。当我尝试访问它时(在页面刷新时),对象返回为[object object]
,而不是[object XMLDocument]
如何将
sessionStorage
中的数据作为XMLDocument
(或将其转换为一个?localStorage
和sessionStorage
只能保存字符串。请看一下:
除非序列化对象,否则无法存储对象。所以在你的情况下,你必须这样做
如果您将XML文档作为文本接收,只需直接存储它。您可以使用在检索后对其进行解析。您可能希望在将XMLDocument保存到存储器之前对其进行序列化:
var xml = new XMLSerializer().serializeToString(originalDom);
sessionStorage.setItem("myDocument", xml);
然后在从存储器加载数据后取消序列化:
var xml = sessionStorage.getItem("myDocument");
var restoredDom = new DOMParser().parseFromString(xml, "text/xml");
您是否尝试了新的XMLDOcument(object)?@FelixKling如何将(jQuery)xml转换为字符串,然后再转换回来?
JSON.stringify()
是一种可能的方法。我如何将xml(使用jQuery)序列化为字符串?@alex:可能不适用于XMLDOcument。我假定它是循环引用。但是对于“普通对象”,您是对的。谢谢您,但是我如何将jqueryxml文档转换为XMLDocument呢?您应该看看文档。在那里它声明jQuery.parseXML()
返回一个XMLDocument
。但是新的XMLSerializer().serializeToString(originalDom);未完全将child转换为正确的字符串。
var xml = sessionStorage.getItem("myDocument");
var restoredDom = new DOMParser().parseFromString(xml, "text/xml");