最近,我一直在努力弄清楚如何在JS/HTML程序中实现cookie,但无论出于何种原因,它就是不会。工作。我看了一下w3schools的教程,得到了如何从cookie中创建和读取值的公认答案。我在记事本中编辑文件(我知道,这是一种非常原始的编辑软件),然后用.html扩展名保存文件,以便在浏览器中运行它。但是当我这样做时,浏览器识别cookie,但说它们来自其他网站。"这些cookie在关闭和重新打开页面后不会保存,并且无法使用document.cookies
var canvas = document.getElementById("canvas");
var processing = new Processing(canvas, function(processing) {
processing.size(400, 400);
processing.background(0xFFF);
with(processing) {
var createCookie = function(name, value, days) {
var expires;
if (days) {
var date = new Date();
date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000));
expires = "; expires=" + date.toGMTString();
} else {
expires = "";
}
document.cookie = name + "=" + value + expires + "; path=/";
};
function getCookie(c_name) {
if (document.cookie.length > 0) {
c_start = document.cookie.indexOf(c_name + "=");
if (c_start != -1) {
c_start = c_start + c_name.length + 1;
c_end = document.cookie.indexOf(";", c_start);
if (c_end == -1) {
c_end = document.cookie.length;
}
return unescape(document.cookie.substring(c_start, c_end));
}
}
return "";
};
createCookie("startup", "true", 365 * 3);
var cookieNum = 1;
mousePressed = function() {
createCookie("cookie" + cookieNum, "value", 365 * 3);
cookieNum++;
};
}
if (typeof draw !== 'undefined') processing.draw = draw;
});
<canvas id="canvas"></canvas>
从上面的注释链(可能比它应该的要长)中的信息中,我已经能够收集到关于我的问题的以下信息:
- 我的cookie没有被识别,因为页面是从我的本地存储运行的,没有服务器。
- 为了使cookie被识别,服务器需要运行,无论是在网络上还是在机器上。
- 可以在本地运行的服务器包括IIS和WAMP。
感谢Barmar提供的信息