0

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

iFrame的src指向 Internet 上的一个页面,如下所示:

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"; }

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

4

1 回答 1

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 Storage)

您可以像这样测试 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 开发者网络

于 2013-09-02T01:40:12.820 回答