Javascript 为什么我不能多放些饼干

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

我正在使用此代码设置多个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());
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;