持久收藏夹列表

List of Persistent Favourites

本文关键字:列表 收藏夹      更新时间:2023-09-26

我需要跟踪从大约100个条目的列表中添加的25个收藏夹的列表。这些最受欢迎的将在的列表中

  • "收藏夹1"
  • "收藏夹2"
  • "收藏夹3"……等等

并且我需要它们被持久地存储。我还要求它们能够被删除,并用另一个喜欢的字符串值替换。我已经看过如何在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"
    }
}

我的意图是使fav1fav2fav3的localStorage变量。。。CCD_ 5,然后单独管理它们。但这不起作用,因为调用localStorage.favNumber = "x";会使本地存储变量favNumber等于"x"而不是fav+i

我现在没有主意;我看过http://playground.html5rocks.com/#async_transactions尝试使用HTML5数据库,但我对网络开发很陌生,这似乎有点太难了。有人知道如何解决这个问题吗?任何信息都会有所帮助。

这可能会有所帮助。我用这些来将信息存储在本地存储中,并进行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);
            }
        }
    }
}