如何使用Javascript将cookie存储在本地存储中?

Que*_*ner 4 javascript cookies local-storage

我有一个基于Javacript的Android应用程序(希望后来的iPhone),并使用Phonegap/Applaud制作成应用程序.

不幸的是,设置和获取cookie不适用于Android,这可能是Android环境特有的.我被告知使用"本地存储"可能更可靠.

然而,直到今天早上我才对本地存储一无所知,所以我很难得到它.从我收集的内容来看,它基本上只是另一个用不同语法保存数据的地方.对于我的情况,除了Android迫使我使用它之外,我认为它不会比cookie有任何优势.因此,我希望我仍然可以利用我现有的代码来设置和获取cookie,而不必采用全新的方法.

当然我可以在我的Javascript中进行测试,看看是否有本地存储,如果存在,那么在那里存储和检索我的cookie数据,如果没有,那么只是正常使用cookie?

注1:我搜索了Stack Overflow的类似问题,并且有一个起初看起来正是我正在谈论的内容,但它太简洁了所以我无法解析它以了解我应该怎么做.此外,我认为它假设存在我认为没有的库和代码.我也看了这个问题,但我认为它与我所追求的相反.

注意2:这是我目前获取和设置cookie的代码(从网络上的某个地方购买.直到Android问题,坚如磐石可靠):

function getCookie(c_name)
{
    var c_start = document.cookie.indexOf(c_name + "=");

    if (document.cookie.length > 0)
    {
        if (c_start !== -1)
        {
            return getCookieSubstring(c_start, c_name);
        }
    }
    return "";
}

function setCookie(c_name, value, expiredays)
{
        var exdate = new Date();
        exdate.setDate(exdate.getDate() + expiredays);
        document.cookie = c_name + "=" + escape(value) +
        ((expiredays === null) ? "" : ";expires=" + exdate.toUTCString());
        alert("this is document.cookie: " + document.cookie);
}
Run Code Online (Sandbox Code Playgroud)

Ber*_*rgi 6

看看http://diveintohtml5.info/storage.html.历史可能根本不是很有趣,但它至少为进一步阅读部分中的其他教程提供了一个很好的链接列表.

所以,现在你的代码.首先要提到的是localStorage没有过期 - 它是持久的(直到用户手动清除所有内容).如果您想使用一些较短的存储空间,您也可以使用sessionStorage,它具有相同的界面,但只能在浏览器关闭之前使用.

重新编写代码很简单:

function getCookie(c_name) {
    return localStorage.getItem(c_name);
}

function setCookie(c_name, value, expiredays) {
    return localStorage.setItem(c_name, value);
}
Run Code Online (Sandbox Code Playgroud)