【问题标题】:Delete cookie on browser close not on page refresh在浏览器关闭时删除 cookie,而不是在页面刷新时
【发布时间】:2015-08-02 22:27:53
【问题描述】:

我看到很多关于相同问题的帖子,但我没有得到确切的解决方案。我想使用 javascript 删除浏览器或标签关闭事件上的 cookie。我制作了删除 cookie 功能并调用了 onbeforeunload 事件。但是我看到页面刷新时也调用了该事件,我不想在页面刷新时删除 cookie。我在许多帖子中看到他们正在检测链接点击、F5 的按键事件和表单提交,并且它们阻止了 onbeforeunload 事件。但是然后刷新按钮单击并在 url 栏按回车呢。所以我认为这不是一个确切的解决方案。所以请帮我解决这个问题。

更多信息是我正在使用 PHP 创建 cookie,并希望在浏览器关闭时删除此 cookie。

【问题讨论】:

  • 没有“浏览器关闭”,也没有“页面刷新”事件。 onbeforeunload 事件在 页面(标签)关闭和页面刷新时触发。
  • @hindmost 所以浏览器关闭cookie删除没有解决方案?
  • 嗨,我也有同样的问题。你找到解决办法了吗?

标签: javascript php jquery cookies


【解决方案1】:

浏览器关闭时会自动删除 Cookie,除非您指定 Cookie 的生命周期。

【讨论】:

  • 你的意思是我会设置cookie没有过期时间??
  • 是的。没有过期时间,cookies会在浏览器关闭时被删除。
  • 我正在使用以下代码设置 cookie $cookie_name = "user"; $cookie_value = "约翰·多伊"; setcookie($cookie_name, $cookie_value, time() + (86400 * 30), "/"); // 86400 = 1 天*/ 你能告诉我如何设置这个 cookie 没有过期时间
  • 你使用的是什么 jquery cookies 插件?
  • 我没有为此使用任何插件,我为删除 cookie 函数 delete_cookie(name, path, domain) { document.cookie = name + "=" + ((path) ? " ;path="+path:"")+ ((domain)?";domain="+domain:"") + ";expires=Thu, 01 Jan 1970 00:00:01 GMT"; }
【解决方案2】:

如果您想在浏览器关闭时删除 cookie,最好在页面加载时检查 cookie 是否存在并删除。

【讨论】:

  • 我的概念是,当我将产品保存为我最喜欢的产品而无需登录时,我将产品 ID 保存在 cookie 中,并且我想在关闭浏览器时删除此 cookie,而不是在页面刷新时,您的解决方案将删除我的 cookie页面也刷新。
【解决方案3】:

在浏览器关闭时删除所有cookies使用以下代码

$(window).bind('beforeunload', function(event) {    
    var cookies = $.cookie();
      for(var cookie in cookies) {
        $.removeCookie(cookie);
      }
    return true;
});

希望这能解决您的问题。

【讨论】:

  • 页面刷新时触发此事件我不想在页面刷新时执行删除 cookie 功能....
猜你喜欢
  • 2012-12-02
  • 1970-01-01
  • 1970-01-01
  • 2015-07-03
  • 2015-06-13
  • 2010-12-19
  • 1970-01-01
  • 2019-11-26
  • 2016-07-16
相关资源
最近更新 更多