我需要跟踪从100个条目列表中添加的25个收藏夹的列表。这些收藏夹将列在
列表中我需要它们持久存储。我还要求它们能够被删除并替换为另一个喜欢的字符串值。我查看了How do I store an array in localStorage?,但这对我不起作用,因为当我在javascript文件上声明var names=[];
时,每次我的收藏夹功能运行时,它都会重新声明数组并清除所有内容。
我尝试过这样的事情:
function addToFav(string)
{
if (localStorage.fav1) // if fav1 was created before
{
alert("local storage fav1 present, don't make variables");
}
else
{
alert('fav variables never made, make them now');
var i=1;
for (i=1; i<=25; i++)
{
var favNumber = "fav" + i;
localStorage.favNumber = "x";
}
alert(localStorage.fav1); // outputs "undefined"
}
}
我打算创建fav1
,fav2
,fav3
... fav25
的localStorage变量,然后单独管理它们。但这不起作用,因为调用localStorage.favNumber = "x";
会使本地存储变量 favNumber
等于"x"
而不是fav+i
。
我现在没有想法;我已经看过http://playground.html5rocks.com/#async_transactions尝试使用HTML5数据库,但我对Web开发并不陌生,对于我正在尝试做的事情来说似乎有点太多了。有谁知道如何解决这个问题?任何信息都会有所帮助。
答案 0 :(得分:0)
这可能会有所帮助。我使用这些信息在本地存储中存储信息并使用cookie备份...
function setLocalStorage(c_name, value) {
var exdays = 30;
// if localStorage is present, use that
if (('localStorage' in window) && window.localStorage !== null) {
localStorage[c_name] = value;
} else {
var exdate = new Date();
exdate.setDate(exdate.getDate() + exdays);
var c_value = escape(value) + ((exdays == null) ? "" : "; expires=" + exdate.toUTCString());
document.cookie = c_name + "=" + c_value;
}
}
function getLocalStorage(c_name) {
// if localStorage is present, use that
if (('localStorage' in window) && window.localStorage !== null) {
return localStorage[c_name];
} else {
var i, x, y, ARRcookies = document.cookie.split(";");
for (i = 0; i < ARRcookies.length; i++) {
x = ARRcookies[i].substr(0, ARRcookies[i].indexOf("="));
y = ARRcookies[i].substr(ARRcookies[i].indexOf("=") + 1);
x = x.replace(/^\s+|\s+$/g, "");
if (x == c_name) {
return unescape(y);
}
}
}
}