0

我有一个用于编写 cookie 的功能:

function Search_Click() {
  $.cookie("urlAction", null);
  $.cookie("searchKey", null);
  var searchkey = $('#txtsearch').val();
  var key = decodeURIComponent(searchkey);
  sampleData = "Q=" + key;
  if ($.cookie("urlInStock") != null) {
    action = "NewSearchIn";
  } else {
    action = "NewSearch";
  }
  urlAction = "Pro/" + action + "/";
  $.cookie("searchKey", sampleData);
  $.cookie("urlActionVal", urlAction);
  window.location = "/Pro?tab=2";
}

完成后Search_Click(),页面将使用我刚刚注册的 cookie 重定向到另一个页面。

然后,如果用户单击链接,我想删除该 cookie。

这是我尝试过的:

 function deleteSearchCookies() {
    $.cookie("searchKey", null);
    $.cookie("urlActionVal", null);
 }

但是当我在 FireBug 中出错时,会话仍然存在。

4

3 回答 3

3
function deleteCookie(name) {
    document.cookie = name+'="";-1; path=/';
}

var login = document.getElementById("loginlink");
login.onclick = function() {
  deleteCookie("name");
};
于 2013-03-07T09:49:12.247 回答
2

删除:

function deleteSearchCookies() {
    $.removeCookie("searchKey");
    $.removeCookie("urlActionVal");
}

有关更多信息,请访问问题

如果您不想使用插件,请使用(它的替代修改如你所愿)

//Creates client side cookie
function Cookie(name, value, minutes) {
   var expires = "";
   if (minutes) {
      var date = new Date();
      date.setTime(date.getTime() + (minutes * 60 * 1000));
      expires = "; expires=" + date.toGMTString();
   }

   document.cookie = name + "=" + value + expires;
}

function deleteSearchCookies() {
    Cookie("searchKey",null,-1);
    Cookie("urlActionVal",null,-1);
}
于 2013-03-07T09:49:21.310 回答
1

像这样删除:

$.cookie(cookieName, null, { expires: -1, path: '/' }); 

抱歉,您需要使用相同的路径保存它,如下所示:

var date = new Date();
date.setTime(date.getTime() + sameValueForTime);
$.cookie(cookieName, value, { expires: date, path: '/' });

有时firebug会出现错误并在删除时显示cookie存在,但您只能在cookie区域看到它而不能使用它。

于 2013-03-07T09:48:20.830 回答