Cookie如何识别名称,到期日期,路径

时间:2015-09-06 15:46:47

标签: javascript html cookies

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

谢谢!

1 个答案:

答案 0 :(得分:1)

我使用两个函数(可能是原始代码来自herehere)来获取和设置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. 将一个脚本元素添加到页面的头部,以及上面的两个功能
  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功能。

  5. 你的第一个问题并不完全清楚,但请阅读this page,有很好的例子和代码示例。 This是另一个很好的Cookie演示文稿。