排名新手问题(原谅我) - 如果有更好的论坛,请告诉我。我想设置一个在三十天后过期的cookie。我在stackoverflow上找到了一个响应,并查看了有关如何设置cookie的几个在线解释,但我无法完全理解我所看到的内容。这是the answer given on stackoverflow:
function createCookie(name, value, days) {
var date, expires;
if (days) {
date = new Date();
date.setTime(date.getTime()+(days*24*60*60*1000));
expires = "; expires="+date.toGMTString();
} else {
expires = "";
}
document.cookie = name+"="+value+expires+"; path=/";
}
如果我错了(请),你可以在这里纠正我:
第1行创建一个名为createCookie的函数,其中包含三个参数name
,value
和days
。使用createCookie(testCookie, ?, 30);
之类的函数调用函数时,将定义或设置这些参数。我在论证value
中有一个问号,因为我不确定那里会发生什么。
第2行建立了两个变量date
和expires
,而没有为这些变量赋值。
第3行说明参数days
然后直接执行某些行。这超出了我对JS的理解,因为到目前为止,我已经完成了if (x > 10) {
这样的事情,其中x > 10
定义了一个条件,当条件为真时,下面括号中的代码会被执行,如果没有,它就会被执行跳到if / else的else部分。根据我的理解,days
并不是一个条件。我想我的理解这一部分并不是最重要的,只要它有效。
第4行创建一个名为date的变量,并为其指定当前日期。
第5行date.setTime(date.getTime()+(days*24*60*60*1000));
使用函数的参数days
进行数学计算,以得出实际的到期日期并将其分配给变量date
。
第6行expires = "; expires="+date.toGMTString();
为变量expires
指定一个值,但我不太关注,因为看起来值是{{1}}的串联,未定义那一点,加上以字符串表示的参数expires
的值?此外,现在看来date
已被弃用?同样,可能的情况是,我对此的理解并不是最重要的;然而,我的缺乏增加了我的整体困惑。
第8行将Cookie设置为toGMTString()
加上字符串name
加"="
加value
加上字符串expires
。我仍然不知道"; path=/"
应该是什么......
有人想帮我理解这个吗?谢谢!
答案 0 :(得分:0)
第1行 - 值是您要存储在Cookie中的数据。
createCookie("testCookie", "The value I want to store", 30);
第3行 - 这是一个真正的检查,它正在检查以确保天数未定义。
第6行 - 我认为你混淆了字符串" expires"变量到期。对于GMT,可能是在它被弃用之前写的。
答案 1 :(得分:0)
function createCookie(name, value, days) { // this passes in the values for the cookie you want to store
var date, expires; // set the variables
if (days) { // check to make sure days is not undefined
date = new Date(); // sets todays date
date.setTime(date.getTime()+(days*24*60*60*1000)); // does maths to make it expiry after `day` parameter you passed into the function.
expires = "; expires="+date.toGMTString(); // sets the expiry date
} else {
expires = ""; // else if days is undefined sets nothing to expiry
}
document.cookie = name+"="+value+expires+"; path=/"; // sets the cookie.
}