如何阻止 <a> 标签的 window.on('beforeUnload') 事件?

5

你真的是在询问如何在关闭窗口时获得确认,而不是导航离开它吗?因为有很多种方式可以离开当前页面,而不使用链接。 - Reinstate Monica Cellio
$(window).off('beforeunload');,也许你需要在锚点的mousedown(mouseup?)处理程序上调用它,而不是click处理程序。 - A. Wolff
@Archer 不需要。我不想让用户在点击任何链接时看到离开消息警报。我只需要在窗口关闭时才有。 - Human Being
那么当他们点击返回按钮时,您对显示的消息感到满意吗? - Reinstate Monica Cellio
@Wolff,这个按预期工作。 - Human Being
2个回答

10
$(document).ready(function () {
    $('#navigate').on('mouseenter', stopNavigate)
        .on('mouseout', function () {
        $(window).on('beforeunload', windowBeforeUnload);
    });

});

function stopNavigate(event) {
    $(window).off('beforeunload');
}

function windowBeforeUnload() {
    return 'Are you sure you want to leave?';
}

$(window).on('beforeunload', windowBeforeUnload);

演示


1
如果可能的话,我会给予10000+分。但抱歉,我只能给+1分。 - Human Being

0

试试这个 -

$("a").mousedown(function() {
    $(window).unbind();
});

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接