JavaScript:使用网站的 HTML 文档保存/加载 Cookie



对于学校作业,我需要使用 JavaScript 来保存和读取 cookie。设置cookie的代码都很好,我从w3Schools得到它(我知道这显然是一个糟糕的指南(。我的问题是让它使用正在进行的"路径"与 HTML/记事本一起工作。

当网页加载一个名为 checkcookie 的函数时,它会检查 cookie 是否存在,如果不存在,它会要求用户输入他们的名字,然后保存一个 cookie 供以后使用。如果 Cookie 已存在,则会:)显示问候消息。到目前为止,我已经使函数适用于您可以在 w3schools 上访问的示例运行界面。但是,我最近尝试使用 HTML 文档设置它们,但 cookie 似乎无法正确保存。我打开一个记事本文档,粘贴代码,另存为HTML,然后用谷歌浏览器打开。弹出窗口询问我的名字,我输入,但当我重新加载时,弹出窗口一次又一次地询问我的名字,依此类推。这是我从中获取函数的页面: http://www.w3schools.com/js/js_cookies.asp

我想我需要为cookie或其他东西整理出一条路径,我查看了这个网页以获取更多信息 http://www.quirksmode.org/js/cookies.html 但我仍然不明白。

为什么这不起作用?我应该设置保存网页 html 文档的文件目录的路径吗?为什么它可以在w3schools TryIt系统中工作,但不能在原始HTML文档中工作?

function setCookie(cname,cvalue,exdays) {
    var d = new Date();
    d.setTime(d.getTime() + (exdays*24*60*60*1000));
    var expires = "expires=" + d.toGMTString();
    document.cookie = cname+"="+cvalue+"; "+expires+"; path=/";
}
function getCookie(cname) {
    var title = cname + "=";
    var cookie_array = document.cookie.split(';');
    for(var i=0; i<cookie_array.length; i++) {
        var check = cookie_array[i];
        while (check.charAt(0)==' ') check = check.substring(1);
        if (check.indexOf(title) != -1) {
            return check.substring(title.length, check.length);
        }
    }
    return "";
}
function checkCookie() {
    var name=getCookie("name");
    if (name != "") {
        alert("Welcome again " + name);
    } else {
       name = prompt("Please enter your name:","");
       if (name != null && name != "") {
           setCookie("name", name, 30);
       }
    }
}

是的,正如 jyrkim 提到的,是一个网络服务器的东西

最新更新