我是javascript的新手,我遇到过这些函数,我相信这些函数用于存储带有名称的cookie(名称为'value')。我只是不明白!功能如下:
制作Cookie
function setCookie(c_name, value, expiredays) {
var exdate=new Date();
exdate.setDate(exdate.getDate()+expiredays);
document.cookie=c_name+ "=" +escape(value)+ ((expiredays==null) ? "" : ";expires="+exdate.toGMTString());
}
检查是否存储了cookie
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 "";
}
还有一个显示带有存储在cookie中的值的警报框的功能,但是我太懒了,不能写下来! (我在一本书中找到了它)
编辑:我决定编写最后一个显示欢迎消息的函数(如果存储了cookie),如果未设置则显示提示框
是否已设定?如果是这样,请“foo”。如果没有,请执行“bar”
function checkCookie() {
username=getCookie('username');
if (username!=null && username!="") {
alert('Welcome again ' + username + '!');
} else {
username=prompt("Please enter your name:","");
if (username!=null && username!="") {
setCookie('username', username,365);
}
}
}
答案 0 :(得分:2)
文档的cookie存储在一个长cookie字符串中。这些函数解析出单独的cookie值。有关字符串结构的说明,请参阅this page。
答案 1 :(得分:2)
制作cookie:
假设你要设置一个名为“favoriteColor”的cookie,其值为“blue”,在一周内到期。您要运行的代码是
document.cookie="favoriteColor=blue;expires=Mon, 16 Aug 2010 23:59:59 GMT";
您发布的函数setCookie旨在生成该行代码。它根据您提供的时间生成日期,它会转义值的文本,并连接结果以创建document.cookie字符串。
唯一剩下的棘手的一点是expiredays参数是可选的;创建document.cookie字符串的行包括检查expiredays是否存在的条件,如果expiredays不存在,则不包括字符串的“expires”部分。这使用“三元运算符”:(expiredays==null) ? "" : ";expires="+exdate.toGMTString()
表示“如果expiredays为null,则使用空字符串,否则使用'; expires =”+ exdate.toGMTString()'“。
您发布的第二段代码是通过搜索给定名称(后跟=)的Cookie集合(单个字符串)来查找Cookie,并将该文本从该点返回到下一个分号。所以它可以从
中选择“蓝色”“favoriteBand =外国人; favoriteColor =蓝; favoriteFood =寿司;”。
答案 2 :(得分:1)
您可能希望read a little bit了解哪些Cookie以及它们的工作原理。
在Cookie中,您有name:value
对实际数据和一些元数据,例如Cookie到期日期。