Javascript onBeforeUnload在与DOM进行任何交互之前
我有一个带有卸载侦听器的页面,非常简单,如:Javascript onBeforeUnload在与DOM进行任何交互之前,javascript,onbeforeunload,dom-events,Javascript,Onbeforeunload,Dom Events,我有一个带有卸载侦听器的页面,非常简单,如: $(window).on("beforeunload", function(e){ if (someCondition) return null; }); 加载后,如果我单击页面上的任何位置,然后尝试关闭选项卡,我将收到警告 但是,如果在与DOM进行任何交互之前关闭选项卡,则不会收到警告 我在返回null上放置了一个断点显示它被调用,但随后被浏览器忽略(Mac OS 10.13.6上的Chrome 67.0.3396.99) 这有什么原因吗
$(window).on("beforeunload", function(e){
if (someCondition) return null;
});
加载后,如果我单击页面上的任何位置,然后尝试关闭选项卡,我将收到警告
但是,如果在与DOM进行任何交互之前关闭选项卡,则不会收到警告
我在返回null上放置了一个断点代码>显示它被调用,但随后被浏览器忽略(Mac OS 10.13.6上的Chrome 67.0.3396.99)
这有什么原因吗?有办法吗
提前感谢您的帮助:)这主要是为了警告用户不要留下未保存输入的页面。。。如果您根本不与DOM交互,那么此时您可能也没有在页面上进行太多的用户输入,对吗?@CBroe上下文是:用户保存表单,该表单包含在服务器端检测到的错误,我重定向到显示错误消息的页面(解释没有保存更改)再看看表格。我不希望人们不小心关闭了标签,以为如果他们没有仔细阅读邮件,他们的更改就被保存了。我猜,这可能是为了防止阴暗的“广告商”试图让我停留在一个我根本不感兴趣的页面上。//也许您可以通过AJAX执行有效性检查,然后我将停留在一个我已经交互过的页面上,所以这个限制应该不再是一个问题…?Thant有道理是的。非常感谢@CBroe。