我需要监视用户何时离开页面(移至另一个站点而不是同一站点)或关闭窗口/选项卡。 我可以用$(window).bind('unload', function() {}); 但是onload是一个包罗万象的事件:它还可以捕获页面刷新并导航到同一网站上的其他页面。 如何使用javascript / jQuery检测这两个事件(页面刷新和导航到同一网站中的另一个页面)?

#1楼 票数:3 已采纳

我认为这是不可能的,我不知道这样的事件。

一种可能的解决方案是将当前URL与目标URL进行比较,但是由于安全和隐私原因,这是不可能的,请参见:

如何在javascript onbeforeunload事件中获取目标网址?

#2楼 票数:2

在每一页上

var leaving = true;

$(function() {
    $('a[rel!=ext]').click(function () { leaving = false; });
    $('form').submit(function () { leaving = false; });
});

$(function() { window.onbeforeunload = unloadPage; });

function unloadPage() {
    if(leaving) {
        // Put your logic here
    }
}

然后,只需确保所有指向外部站点的链接都具有rel="ext"属性即可。

  ask by Robert Audi translate from so

未解决问题?本站智能推荐:

1回复

创建类似于beforeUnload的JavaScript函数,单击“链接”以显示自定义“确认”对话框时触发该函数

在我使用JavaScript的应用程序中,如果用户在保存数据之前尝试离开页面,则会显示典型的警报消息。 这是使用beforeunload事件完成的。 此事件仅允许您更改和设置自定义文本,仅此而已。 我读到有些浏览器甚至不允许使用自定义文本! 所以无论如何在我的应用程序中,我现在有一个
1回复

页面上的JavaScript保存表单卸载

我尝试使用以下代码在使用JavaScript离开页面时自动保存表单 但是,不知何故表单没有提交,我只是被重定向到了我要浏览的页面。 关于如何做到这一点的任何想法?
1回复

window.close()和beforeunload事件

每当用户关闭浏览器窗口时,我需要清除一些会话变量。 窗口可以通过两种方式关闭: 通过按下窗口关闭按钮的正常方式 通过按下窗口内的自定义按钮 我正在使用jQuery,所以监听器是: 通过调用最终执行的函数关闭窗口: 问题是关闭窗口的第二种方法只触发FF中的beforeun
1回复

我如何在jQuery中重置beforeunload

我有此过程设置,可以询问用户是否希望离开聊天室。 如果是,则处理卸载,并在房间中写入一条消息,告知用户用户离开了聊天室,并将聊天室的占用量减少了1。 那部分工作正常... 但是,如果用户选择停留(并在弹出窗口上单击“停留”),那么它将停留在可以的页面上。但是,下一次用户决定离开befo
1回复

cookie删除和页面刷新的beforeunload事件

我想在他/她关闭窗口时注销用户。 为了捕获此事件,我使用了beforeunload事件处理程序。 但是当我关闭选项卡时,不会调用removeCookie。 这是示例代码。 这是此问题的修改代码 我正在使用JQuery 1.5.2。 我想要的是当用户刷新页面时应刷新的页面,并且在
7回复

用户提交表单时如何禁用beforeunload操作?

我有一小段代码: 我想知道,当用户点击提交按钮时,我怎么能禁用这个请求。 基本上像这里的东西,在SO上。 当您提出问题并决定关闭页面时,您会看到一个警告窗口,但在提交表单时不会发生这种情况。
1回复

灯箱弹出时,InternetExplorer会触发“on(beforeunload)”

这是我的代码: 这在chrome和firefox上工作正常,但是在Internet Explorer上,当我的灯箱在同一页面中打开时,它会触发on('beforeunload')事件。 有什么办法可以防止这种情况? 我试过了: 但我仍然得到相同的结果。
1回复

jQuery以编程方式触发beforeunload事件

我正在尝试使用 jQuery 调用浏览器的 onbeforeupload 事件,如下所示:- 它不显示浏览器的默认 onunload 事件确认框,这意味着 beforeunload 事件不会被触发。 如何触发 beforeunload 事件?