[英]Get a cookie value (javascript)
所以我是 Javascript 的新手,我正在尝试获取 cookie 值来跟踪测试。
我有六个问题,当一个问题完成时,我将“计数器”增加 1 个值,这样如果用户在问题 4 上失去连接,计数器将是 4。 然后当他们重新连接时,我可以从 cookie 中获取计数器编号并从问题四启动,而不是在问题一中重新启动用户。
这是我的 cookie, counter 是存储问题编号的数字。
document.cookie = "value1=" + one + ";value2" + two + ";value3=" + three + ";value4" + four + ";value5=" + five + ";value6=" + six + ";count=" + counter + ";expires=" + exp.toUTCString();
这是我试图弄清楚值如何存储的尝试,我尝试寻找计数器、“count”、“count=”和“count=6”
function getCookie(cookieName) {
var name = cookieName + "=";
var ca = document.cookie.split(';');
for (var i = 0; i < ca.length; i++) {
var c = ca[i].trim();
if ((c.indexOf(i)) == (all the options listed above)) {
alert("found");
}
}
return "undefined";
}
我无法弄清楚存储在何处。 是的,数组应该按“;”分开通过 cookie 中的 split()。 当我对循环中的每个变量“i”调用警报时,我会得到诸如“counter=6”之类的值。
我在实际指定某种“if”语句来仅捕获计数器变量时遇到了麻烦。
谢谢!
您没有正确使用indexOf
。
function getCookie(cookieName) {
var name = cookieName + "=";
var ca = document.cookie.split(';');
for (var i = 0; i < ca.length; i++) {
var c = ca[i].trim();
if ((c.indexOf(name)) == 0) {
alert("found");
return c.substr(name.length);
}
}
alert("not found");
return null;
}
如果您将 cookie 转换为键值对,那么以这种方式访问 cookie 会更容易。 您可以使用以下方法执行此操作:
const cookiesArray = document.cookie.split(";").map((cookie) => cookie.trim());
const cookiesHashmap = cookiesArray.reduce((all, cookie) => {
const [cookieName, value] = cookie.split("=");
return {
[cookieName]: value,
...all,
};
}, {});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.