我有文件(组件树)'m',我试图存储在html5的本地存储中。我尝试将其设置为本地存储。但当我将其取回时,此m已更改为[object Document]。 如何将文档存储到本地存储并将其作为文档本身检索?
以下是我试过的代码
应用程序向服务器发送ajax请求以退出日历的事件,并在请求的onsuccess中收到xhtml的dom表示。 当用户进入下周视图时,应用程序必须从本地存储中撤消该事件。要从js文件向客户端发送响应,dom表示也是必要的。因此我们需要将dom表示存储到localstorage。
我的要求是在第一张图片的控制台中,你可以看到从文件m中检索到'k'并作为响应发送到客户端。所以,我想要的是将这个k或m存储到本地存储所以我可以在同一个js文件中操作它。这个代码在一个单独的js文件中,用于xhtml文件。
我正在使用primefaces 4.0,jsf 2.1。
当我使用
时localStorage.setItem( “calendarevents”,JSON.stringify(K));
我收到错误'将循环结构转换为json'。
答案 0 :(得分:5)
您需要通过执行以下操作来存储document's html的字符串表示形式:
localStorage.setItem('calendar', document.documentElement.innerHTML);
执行此操作时:
localStorage.setItem('calendar', document.documentElement);
...它将document.documentElement.toString()
的结果存储在localStorage中,这对您的目的不起作用。
答案 1 :(得分:1)
localStorage将每个值转换为字符串。要存储对象,必须使用变通方法。
我猜你可以使用in this answer
描述的方法var testObject = { 'one': 1, 'two': 2, 'three': 3 };
// Put the object into storage
localStorage.setItem('testObject', JSON.stringify(testObject));
// Retrieve the object from storage
var retrievedObject = localStorage.getItem('testObject');
console.log('retrievedObject: ', JSON.parse(retrievedObject));