浏览器关闭时如何触发jQuery [重复]

Posted

技术标签:

【中文标题】浏览器关闭时如何触发jQuery [重复]【英文标题】:How to trigger jQuery when the browser is closed [duplicate] 【发布时间】:2012-01-08 03:49:51 【问题描述】:

可能重复:javascript detect browser close tab/close browser

有人知道在 javascript/jQuery 中监听窗口关闭事件的可靠方法吗?

窗口是父实例,而不是任何子实例。 IE。如果一个窗口被错误地关闭并且访问者再次启动他们的浏览器并再次加载之前访问过的 url。

【问题讨论】:

您是否要在 AJAX 站点中保存状态? 【参考方案1】:

您可以使用 window.unload 事件设置 cookie 或使用本地存储使用 new.date() 节省时间,然后查看访问者是否在设定的时间内返回。

类似:

$(window).unload(function() 
    localStorage.setItem(“theyLeft”, new Date());

然后在加载时检查:

$(window).load(function() 
    var timeGoneBy = new Date() - localStorage.getItem(“theyLeft”);
    //calculate time gone by, and do something if visitor returned within given time etc.

需要大量改进,本地存储应该有 cookie 作为后备,但这只是为了展示它的本质。

【讨论】:

【参考方案2】:

试试unload 方法。

当用户导航时,unload 事件被发送到窗口元素 远离页面。这可能意味着许多事情之一。用户可以 已单击链接离开页面,或在 地址栏。前进和后退按钮将触发事件。 关闭浏览器窗口将导致事件被触发。甚至 页面重新加载将首先创建一个卸载事件。

您也可以尝试使用 JS 的 onunload 和 onbeforeunload 事件。

【讨论】:

如果用户点击一个链接,这个事件也会被触发。 还有很多其他的东西......看我的更新。

以上是关于浏览器关闭时如何触发jQuery [重复]的主要内容,如果未能解决你的问题,请参考以下文章

使用 javascript 或 jquery 关闭当前浏览器选项卡 [重复]

如果用户关闭浏览器,则从数据库中删除数据[重复]

jQuery隐藏只触发一次[重复]

jquery popup中的事件被多次触发

iOS中的jquery打开/关闭div背景(不应该)适用于所有桌面浏览器[重复]

如何确定事件是不是已与 jQuery 绑定 [重复]