区分浏览器刷新和浏览器关闭

时间:2013-06-10 14:38:22

标签: javascript jquery browser

我想在页面上的访问者关闭浏览器时设置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>

遵循此link

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

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

我关注了上面的一些链接和另一个here。并且从帖子中发现我们无法区分关闭和刷新。但那些帖子是3 - 4年前的。

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

3 个答案:

答案 0 :(得分:1)

我担心你无法分辨。

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

答案 1 :(得分:1)

嗯,这个怎么样:

  1. 设置cookie onbeforeunload
  2. 全局onload,检查Cookie的时间戳,看看这是链接还是新会话
  3. 如果时间戳差异只有几秒钟,请删除Cookie

答案 2 :(得分:0)

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

Browser close and reload点击此链接了解更多详情