Javascript 为什么我不能多放些饼干
我正在使用此代码设置多个cookie,但我只能设置两个cookie。为什么这个不能设置更多的饼干Javascript 为什么我不能多放些饼干,javascript,cookies,Javascript,Cookies,我正在使用此代码设置多个cookie,但我只能设置两个cookie。为什么这个不能设置更多的饼干 function setCookie(c_name,value,exdays,path) { var exdate=new Date(); exdate.setDate(exdate.getDate() + exdays); var c_value=escape(value) + ((exdays==null) ? "" : "; expires="+exdate.toUTCString()); d
function setCookie(c_name,value,exdays,path)
{
var exdate=new Date();
exdate.setDate(exdate.getDate() + exdays);
var c_value=escape(value) + ((exdays==null) ? "" : "; expires="+exdate.toUTCString());
document.cookie=c_name + "=" + c_value + ("; path=/");
}
function setCookie(c_name,value,exdays,path)
{
var exdate=new Date();
exdate.setDate(exdate.getDate() + exdays);
var c_value=escape(value) + ((exdays==null) ? "" : "; expires="+exdate.toUTCString());
document.cookie=c_name + "=" + c_value + ("; path=/");
}
function getCookie(c_name)
{
var i,x,y,ARRcookies=document.cookie.split(";");
for (i=0;i<ARRcookies.length;i++)
{
x=ARRcookies[i].substr(0,ARRcookies[i].indexOf("="));
y=ARRcookies[i].substr(ARRcookies[i].indexOf("=")+1);
x=x.replace(/^\s+|\s+$/g,"");
if (x==c_name)
{
return unescape(y);
}
}
}
var cookieToSet = "1";
for(var i=1; i<=4; i++) {
if(getCookie(i)) {
cookieToSet = i+1;
break;
}
}
setCookie(cookieToSet, 1, 365);
我想实现的是,为返回我网站的访问者显示不同的消息。不仅是第一次访问,而且是第四次访问。尝试简化代码,以这样设置cookies: 编辑二 在分配cookie之前,您可以始终检查它是否存在
function setCookie(key, val){
if (cookieExists(key)) return;
document.cookie = key+'='+val;
}
function cookieExists(key) {
return !!~document.cookie.split(';').map(function(a) {
return a.split('=')[0].trim();
}).indexOf(key);
}
function setCookies(cookies) {
var keys = Object.keys(cookies);
for (var i = 0, len = keys.length; i < len; i++){
var key = keys[i],
val = cookies[key];
if (cookieExists(key)) break;
setCookie(key, val);
}
}
var cookies = {
'foo': Date.now(),
'bar': 123,
'baz': 123
}
setCookies(cookies);
document.body.innerHTML = document.cookie;
这是您获取cookies的代码。。。我可以看到设置的cookies代码吗?还有,生成的cookie有多少个字符?@todd抱歉,我不知道我错过了它。我把它加在上面了。你说的字符是什么意思?我是说document.cookie的字符数是多少?这对你有用吗?你看过演示了吗?如果是这样,你应该标记为正确。哇,我没想到用js设置cookie这么简单。但是@todd这三个曲奇是在第一次访问时同时设置的。我不确定我是否了解这是如何工作的。我所期待的是。。。我第一次设置了foo,然后如果foo存在,我设置第二个cookie条,如果第二个cookie存在,我想设置第三个Baz,依此类推…-仍然同时设置三个。
function setCookie(key, val){
if (cookieExists(key)) return;
document.cookie = key+'='+val;
}
function cookieExists(key) {
return !!~document.cookie.split(';').map(function(a) {
return a.split('=')[0].trim();
}).indexOf(key);
}
function setCookies(cookies) {
var keys = Object.keys(cookies);
for (var i = 0, len = keys.length; i < len; i++){
var key = keys[i],
val = cookies[key];
if (cookieExists(key)) break;
setCookie(key, val);
}
}
var cookies = {
'foo': Date.now(),
'bar': 123,
'baz': 123
}
setCookies(cookies);
document.body.innerHTML = document.cookie;