
This question already has an answer here:
- Storing Objects in HTML5 localStorage 25 answers
如果我不需要localStorage,我的代码将如下所示:
var names=new Array();
names[0]=prompt("New member name?");
这工作。但是,我需要将这个变量存储在localStorage中,并且证明它是相当固执的。我试过了:
var localStorage[names] = new Array();
localStorage.names[0] = prompt("New member name?");
我要去哪里?
localStorage 只支持字符串。使用 JSON.stringify()和 JSON.parse()`。
var names = [];
names[0] = prompt("New member name?");
localStorage.setItem("names", JSON.stringify(names));
//...
var storedNames = JSON.parse(localStorage.getItem("names"));
localStorage和sessionStorage只能处理字符串。您可以扩展默认存储对象来处理数组和对象。只要包含这个脚本并使用新的方法:
Storage.prototype.setObj = function(key, obj) {
return this.setItem(key, JSON.stringify(obj))
}
Storage.prototype.getObj = function(key) {
return JSON.parse(this.getItem(key))
}
使用localStorage.setObj(key,value)来保存一个数组或对象,使用localStorage.getObj(key)来检索它。相同的方法与sessionStorage对象一起工作。
如果您只是使用新方法来访问存储,那么每个值在被getter返回之前都会在保存和解析之前转换为JSON字符串。
来源: http://www.acetous.de/p/152
未经作者同意,本文严禁转载,违者必究!




近期评论