0

从逻辑上讲,这似乎是正确的。但是,setCookie 或 getCookie 函数根本没有触发?

cookie.js

function setCookie(c_name,value,exdays) { 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; }

function getCookie(c_name)
{
var c_value = document.cookie;
var c_start = c_value.indexOf(" " + c_name + "=");
if (c_start == -1)
  {
  c_start = c_value.indexOf(c_name + "=");
  }
if (c_start == -1)
  {
  c_value = null;
  }
else
  {
  c_start = c_value.indexOf("=", c_start) + 1;
  var c_end = c_value.indexOf(";", c_start);
  if (c_end == -1)
  {
c_end = c_value.length;
}
c_value = unescape(c_value.substring(c_start,c_end));
}
return c_value;
}

索引.php

var newCookie = parseInt(getCookie("liked_count"));
if(newCookie != null && newCookie != ""){
newCookie += 1;
setCookie("liked_count",newCookie,5);
}else{
setCookie("liked_count",1,5);
}

无论它跟在 if 语句的哪一边,都不会设置任何 cookie。据我所知,没有错误或警告,难道它在我的 cookies.js 文件中找不到 setCookie 和 getCookie 函数吗?

cookies.js 文件成功定位,所以我无能为力。

<head>
<script type="text/javascript" src="assets/js/cookies.js"></script>
</head>

任何帮助将非常感激!

编辑:

哦,对不起,这很尴尬......原来cookie.js文件被缓存了,我实际上已经移动了文件位置。就这么简单。很抱歉浪费了这么多时间!

4

1 回答 1

2

您遇到的问题是您使用:

var newCookie = parseInt(getCookie("liked_count"));

MDN parseInt 文档

parseInt 如果失败则返回 NaN。而不是以下行:

if(newCookie != null && newCookie != ""){

你应该有

if(!isNaN(newCookie)) {

http://plnkr.co/edit/2Nj5pj

于 2013-10-27T16:42:59.857 回答