Javascript,创建cookie以及将读取和增加cookie的功能

时间:2013-09-02 01:06:00

标签: php javascript jquery html cookies

我的桌面上保存了一个使用 iFrame 的HTML网页。

iFrame的 src 指向互联网上的某个页面,如下所示:

www.example.com/results.html?id=1&year=1900&month=1&x=1&y=2

我的网页上有一个按钮,可以在点击时更改月份和年份的值。

因此,当月份达到13时,它会变回1并将年份提前1点。否则,它会递增直到达到13。

    if (month <= 12) {
        month++;
    }
    if (month == 13) {
        month = 1;
        year++;
    }

很好用,但是当你刷新页面时,变量会回到默认设置为1900和1的任何值。

  • $.cookie.set('month', month)
  • document.cookie = NameOfCookie + "=" + month;

我需要cookie来:

  1. 使用nextPage()函数更改iFrame的src

    function nextPage() { document.getElementById("main").src="http://www.example.com/results.html?id=1&year=" + year + "&month=" + month + "&x=1&y=2"; }

  2. 我不关心过期日期,路径应该只是一个网页,而域名实际上是我硬盘上保存的网页。

1 个答案:

答案 0 :(得分:0)

使用函数设计可以更轻松地使用Javascript中的Cookie来读取/写入它们 Peter-Paul Koch在www.quirksmode.org上有一组示例函数。

他们看起来像这样:

function createCookie(name,value,days) {
    if (days) {
        var date = new Date();
        date.setTime(date.getTime()+(days*24*60*60*1000));
        var expires = "; expires="+date.toGMTString();
    }
    else var expires = "";
    document.cookie = name+"="+value+expires+"; path=/";
}

function readCookie(name) {
    var nameEQ = name + "=";
    var ca = document.cookie.split(';');
    for(var i=0;i < ca.length;i++) {
    var c = ca[i];
        while (c.charAt(0)==' ') c = c.substring(1,c.length);
        if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
    }
    return null;
}

function eraseCookie(name) {
    createCookie(name,"",-1);
}

或者,您可以自己处理document.cookie,也可以使用Web Storage API来存储数据。 (请注意,旧版浏览器可能不支持Web存储)

您可以测试Web Storage API是否可用,如下所示:

if (window.localStorage) {
    // Web Storage is available
} else {
    // Web Storage is not available
}

存储内容:

// The first parameter is the name, the second parameter is the value to store
localStorage.setItem("month", "3");

要读回值:

var m = localStorage.getItem("month");
alert("month = " + m);

有关Web存储的详细信息,请参阅Mozilla Developer Network