Fire onbeforeunload仅确认外部站点的警报

时间:2015-04-02 08:13:08

标签: javascript angularjs onbeforeunload

如果用户离开网站,我正在使用window.onbeforeunload方法显示确认消息。

window.onbeforeunload = function(e) {
    return textMsg;
};

但是,只有当用户导航到外部网站或关闭窗口时,才需要触发此操作。

那么如何取消同一域内的所有XHR和表单提交等的确认消息?

1 个答案:

答案 0 :(得分:1)

尝试(未经测试的代码):

window.onbeforeunload = function(e) {
    return textMsg;
};

$('a:not([href^="http"])').on('click', function() {
    window.onbeforeunload = null; // prevent message
});

$('form').on('submit', function() {
    window.onbeforeunload = null; // prevent message
});

如果链接不以http(外部链接)和<form>提交开头,这将阻止事件触发。寻找目前关闭窗户的解决方案。