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

时间:2014-12-01 14:11:26

标签: javascript html cookies

对于学校工作,我需要使用JavaScript来保存并阅读cookie。设置cookie的代码都很好,我从w3Schools得到它(我知道它显然是一个可怕的指南)。我的问题是使用"路径"使用HTML /记事本。事情还在继续。

当网页加载名为checkcookie的函数时,检查cookie是否存在,如果不存在,则会要求用户输入其名称,然后保存cookie以供日后使用。如果cookie已存在,则会显示问候消息:)。到目前为止,我已经使这些函数适用于您可以在w3schools上访问的示例运行界面事物。但是,我最近尝试使用HTML文档设置它们,并且cookie似乎没有正确保存。我打开一个NotePad文档,粘贴代码,另存为HTML,然后用Google Chrome打开。弹出窗口请求我的名字,我进入,但是当我重新加载时,弹出窗口再次询问我的名字,再次,等等。这是我从以下页面获取功能的页面: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);
       }
    }
}

1 个答案:

答案 0 :(得分:0)

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