好的,我已经为cookie保存了两个功能:
设置Cookie:
function setCookie(cname, cvalue) {
document.cookie.concat(" " + cname + "=" + cvalue + ";");
console.log("Saved cookie!");
}
加载Cookie:
function getCookie(cname) {
var name = cname + "=";
var ca = document.cookie.split(';');
if (document.cookie.indexOf(cname) > 0) {
return document.cookie.substring(cname, (indexOf(";", indexOf(cname)) - 1));
} else {
return 0;
}
}
}
重置Cookie:
function resetCookies() {
document.cookie = "";
}
然而,我的问题是,一旦你加载了一切;所有值都是0.
以下是我正在使用的代码的一些示例。 (因为我试图加载大约60个cookie,所以只需要更长时间阅读。)
function save() {
clearCookies();
setCookie("asdfghjklX", 10)
setCookie("hiX", 20)
}
然后加载:(我在定义问题的脚本中定义了变量)
function load() {
hi = getCookie("hiX");
asdfghjkl = getCookie("asdfghjklX", 20)
}
如果有人可以提供帮助那就太棒了,谢谢!
答案 0 :(得分:0)
它会起作用,但是对于每个无用的请求(对服务器),将cookie发送到服务器并不是一个好主意。而是使用localStorage。
但是,如果您不想从客户端设置/删除Cookie,则可以使用mozilla(MDN)中的 library 。
你可以像这样设置一个cookie:
docCookies.setItem(name, value[, end[, path[, domain[, secure]]]])
删除Cookie:
docCookies.removeItem(name[, path[, domain]])
获得价值:
docCookies.getItem(name)
答案 1 :(得分:0)
您的代码大部分都有效,您的问题就是
A)你正在用前面的空格保存cookie,即。 " hiX=20"
B)使用拆分数组ca
,看看你的cookie是否已设置。
var ca = document.cookie.split(';');
for(var i = 0; i < ca.length; i++) {
if (ca[i].indexOf(cname) > 0) {
return ca[i];
}
}
话虽如此,野外有很多图书馆可以在周日早上轻松处理饼干,例如https://github.com/ScottHamper/Cookies。