1

当页面上的访问者关闭浏览器时,我想设置一个 cookie。我使用了这样的 onbeforeunload 方法

<script language="JavaScript" type="text/javascript">
  window.onbeforeunload = confirmExit;
  function confirmExit()
  {
    return "You have attempted to leave this page.  If you have made any changes to the fields without clicking the Save button, your changes will be lost.  Are you sure you want to exit this page?";
  }
</script>

跟着这个链接

但发现即使刷新页面或点击页面上的任何超链接,都会弹出警报。

只有当访问者点击浏览器的交叉按钮而不是页面刷新时,我才需要设置 cookie。

我关注了一些链接,例如上面的链接和此处的链接。从帖子中发现我们无法区分关闭和刷新。但这些帖子是 3-4 年前的事了。

有没有办法使用 JavaScript 或 Jquery 来区分这些事件?

4

3 回答 3

1

嗯,这个呢:

  1. 在卸载前设置 cookie
  2. 全局加载,检查 cookie 的时间戳,看看这是一个链接,还是一个新会话
  3. 如果时间戳相差只有几秒,删除cookie
于 2013-06-10T14:42:55.580 回答
1

恐怕你没有办法说出来。

你唯一能做的就是超载链接点击并设置一个标志。但你永远无法知道它是刷新还是关闭......

于 2013-06-10T14:42:48.387 回答
0

好吧,当浏览器关闭时会调用 unload,而当您尝试重新加载时会调用 onload。您可以使用这些属性并设置标志,并相应地触发事件

浏览器关闭并重新加载查看此链接了解更多详情

于 2015-01-06T16:16:51.143 回答