cookie如何识别名称、过期日期、路径

How do cookies recognize name, expiration date, path

本文关键字:过期 路径 日期 何识 别名 cookie      更新时间:2023-09-26

我是JavaScript和cookie的新手,所以我有这个奇怪的问题,因为不同的网站有不同的格式。所以我对cookie如何读取和访问它的不同部分感到困惑,即cookie如何从路径或到期日期识别名称?我们是否总是需要指定"username=…;path=/;"来让它识别它,还是它会根据格式自动找到它?我想要解决的主要问题是如何为cookie创建代码添加值,例如"document.cookie="username=John;visit=1;"并使用该访问部分来告诉命中计数,每次页面加载时向其添加1。

谢谢!

我使用两个函数(可能原始代码来自这里或这里)来获取和设置cookie,下面是它们:

function setCookie(cookieName, content, expires, path) {
  var date = new Date();
  date.setDate(date.getDate() + expires);
  var cookie = escape(content) + (expires == null ? "" : "; expires=" + date.toUTCString()) + (path != null ? "; path=" + path : "");
  document.cookie = cookieName + "=" + cookie;
  return true;
}
function getCookie(cookieName) {
  var cookie = document.cookie,
      begin = cookie.indexOf(" " + cookieName + "=");
  if (begin == -1) begin = cookie.indexOf(cookieName + "=");
  if (begin == -1) cookie = null;
  else {
    begin = cookie.indexOf("=", begin) + 1;
    var end = cookie.indexOf(";", begin);
    if (end == -1) end = cookie.length;
    cookie = unescape(cookie.substring(begin, end));
  }
  return cookie;
}

有了它们,你可以很容易地做你想做的事:

  1. 处理页面加载(如<body onload="pageLoad()">)
  2. 在页面的头部添加一个script元素,以及上面的两个函数
  3. 在script元素中添加以下函数:
    function pageLoad() { var cCont = getCookie('hitCount'); var count = 0; if (cCont != null) count = parseInt(count + ''); setCookie('hitCount', (count + 1) + '', null, null); }
  4. 如果您想获得命中数,可以使用count变量,或者再次使用getCookie函数。


你的第一个问题对我来说不是很清楚,但是阅读这个页面,有很好的例子和代码样本。