javascript的卸载和beforeunload替代

时间:2012-09-17 13:58:15

标签: javascript jquery onbeforeunload

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

2 个答案:

答案 0 :(得分:3)

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

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

How can i get the destination url in javascript onbeforeunload event?

答案 1 :(得分: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"属性。