如何在javascript或Jquery中处理浏览器关闭(交叉)

时间:2011-09-20 08:58:57

标签: javascript jquery

我需要通过javascript或Jquery处理浏览器关闭(通过右上角的交叉)。我找到了许多论坛或博客,他们使用onUnload or OnbeforeUnload等方式提供解决方案。但是,无论何时页面刷新或在浏览器中返回和转发,这些事件都会被触发。 只有当用户从应用程序注销或用户关闭窗口时,我才需要使cookie过期。如果我使用onUnload或OnbeforeUnload事件,即使页面刷新或后退或前进,它们也会被触发。

任何帮助真的很感激。 感谢

2 个答案:

答案 0 :(得分:1)

非持久性Cookie是一种解决方法。第二,在客户关闭标签之前,您可以做一些小事。 javascript detect browser close tab/close browser但是如果您的操作列表很大并且标签在完成之前关闭,那么您将无能为力。你可以尝试一下,但根据我的经验,不要依赖它。

window.addEventListener("beforeunload", function (e) {
  var confirmationMessage = "\o/";
  /* Do you small action code here */
  (e || window.event).returnValue = confirmationMessage; //Gecko + IE
  return confirmationMessage;                            //Webkit, Safari, Chrome
});

https://developer.mozilla.org/en-US/docs/Web/Reference/Events/beforeunload?redirectlocale=en-US&redirectslug=DOM/Mozilla_event_reference/beforeunload

答案 1 :(得分:0)

OnbeforeUnload可以用于此目的,一些解决。我认为你可以使用像isClose = true / false这样的标志值,当用户点击任何元素时,它应该被设为false(如果它可以接收到泡泡,则可以应用于div / body)。你可以从网上获得一些js库,并使用它们。

否则,我们需要手动监控右键单击,单击目标(​​如果在体内)等等。并决定,window.close()或单击关闭是导致Onbeforeunload()调用的事件。