仅针对外部站点触发 onbeforeunload 确认警报
Fire onbeforeunload confirm alert for external sites only
我正在使用 window.onbeforeunload 方法在用户离开网站时显示确认消息。
window.onbeforeunload = function(e) {
return textMsg;
};
但是我只需要在用户导航到外部网站或关闭时才触发它 window。
那么如何为同一域内的所有 XHR 和表单提交等取消此确认消息?
尝试(未经测试的代码):
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>
提交,这将阻止事件触发。正在寻找 window 目前关闭的解决方案。
我正在使用 window.onbeforeunload 方法在用户离开网站时显示确认消息。
window.onbeforeunload = function(e) {
return textMsg;
};
但是我只需要在用户导航到外部网站或关闭时才触发它 window。
那么如何为同一域内的所有 XHR 和表单提交等取消此确认消息?
尝试(未经测试的代码):
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>
提交,这将阻止事件触发。正在寻找 window 目前关闭的解决方案。