javascript设置删除cookie

时间:2011-09-27 19:27:22

标签: javascript cookies session-cookies

我在设置和删除PHP中的cookie时遇到问题我没有问题..在javascript中我很多...我知道这个问题无处不在但我遇到的所有答案似乎给我带来了同样的命运所以我不知道什么事情正在发生..这就是我现在所拥有的。

SetCookie("username",ztsUser,14,'/', '');

function SetCookie (name,value,expires,path,domain,secure) {
  document.cookie = name + "=" + escape (value) +
    ((expires) ? "; expires=" + expires.toGMTString() : "") +
    ((path) ? "; path=" + path : "") +
    ((domain) ? "; domain=" + domain : "") +
    ((secure) ? "; secure" : "");
  }

错误:

  

expires.toGMTString不是函数

我拥有的很多cookie函数是:

    var today = new Date();
var expiry = new Date(today.getTime() + 365 * 24 * 60 * 60 * 1000);

function getCookieVal (offset) {
  var endstr = document.cookie.indexOf (";", offset);
  if (endstr == -1) { endstr = document.cookie.length; }
  return unescape(document.cookie.substring(offset, endstr));
  }

function GetCookie (name) {
  var arg = name + "=";
  var alen = arg.length;
  var clen = document.cookie.length;
  var i = 0;
  while (i < clen) {
    var j = i + alen;
    if (document.cookie.substring(i, j) == arg) {
      return getCookieVal (j);
      }
    i = document.cookie.indexOf(" ", i) + 1;
    if (i == 0) break; 
    }
  return null;
  }

function DeleteCookie (name,path,domain) {
  if (GetCookie(name)) {
    document.cookie = name + "=" +
    ((path) ? "; path=" + path : "") +
    ((domain) ? "; domain=" + domain : "") +
    "; expires=Thu, 01-Jan-70 00:00:01 GMT";
    }
  }

function SetCookie (name,value,expires,path,domain,secure) {
  document.cookie = name + "=" + escape (value) +
    ((expires) ? "; expires=" + expires.toGMTString() : "") +
    ((path) ? "; path=" + path : "") +
    ((domain) ? "; domain=" + domain : "") +
    ((secure) ? "; secure" : "");
  }

如果有人知道一个更好的方法我所有的耳朵..但这是我现在得到的,我需要设置,更新,删除,获取... cookie的价值

2 个答案:

答案 0 :(得分:2)

toGMTString已被弃用。请改为toUTCString

function SetCookie (name,value,expires,path,domain,secure) {
  document.cookie = name + "=" + escape (value) +
    ((expires) ? "; expires=" + expires.toUTCString() : "") +
    ((path) ? "; path=" + path : "") +
    ((domain) ? "; domain=" + domain : "") +
    ((secure) ? "; secure" : "");
}

当函数需要Date(14)时,您还传递一个数字(expires.toUTCString):

SetCookie("username", ztsUser, 14, '/', '');

14是什么意思? 14天?假设您可以在函数顶部添加它以支持数字和日期:

if ('number' === typeof expires) {
    expires = new Date(new Date().getTime() + expires * 86400000);
}

86400000是一天中的毫秒数 - 24 * 60 * 60 * 1000

答案 1 :(得分:1)

在JS中已经有许多用于处理cookie的优秀库。为什么不使用其中之一?只需转到您最喜欢的搜索引擎并输入“javascript cookie library”即可找到。