有没有办法在用户选择重新加载/关闭浏览器/退出页面之前执行功能?
我需要这个用于我正在尝试编写的“在线/离线”状态功能。我想检测用户是否仍在页面上。
有任何想法吗?:)
也许有更好的方法来解决这个问题?
有没有办法在用户选择重新加载/关闭浏览器/退出页面之前执行功能?
我需要这个用于我正在尝试编写的“在线/离线”状态功能。我想检测用户是否仍在页面上。
有任何想法吗?:)
也许有更好的方法来解决这个问题?
内联函数:
window.onbeforeunload = function(evt) {
// Cancel the event (if necessary)
evt.preventDefault();
// Google Chrome requires returnValue to be set
evt.returnValue = '';
return null;
};
或通过事件监听器(推荐):
window.addEventListener("beforeunload", function(evt) {
// Cancel the event (if necessary)
evt.preventDefault();
// Google Chrome requires returnValue to be set
evt.returnValue = '';
return null;
});
或者如果你有 jQuery:
$(window).on("beforeunload", function(evt) {
// Cancel the event (if necessary)
evt.preventDefault();
// Google Chrome requires returnValue to be set
evt.returnValue = '';
return null;
});
笔记:
当此事件返回非空值时,将提示用户确认页面卸载。在大多数浏览器中,事件的返回值显示在此对话框中。
自 2011 年 5 月 25 日起,HTML5 规范规定在此事件期间可能会忽略对 window.showModalDialog()、window.alert()、window.confirm() 和 window.prompt() 方法的调用。
请参阅https://developer.mozilla.org/en-US/docs/Web/API/WindowEventHandlers/onbeforeunload上的文档
使用 window.onbeforeunload,当用户离开你的页面时触发它:http: //geekswithblogs.net/hmloo/archive/2012/02/15/use-window.onbeforeunload-event-to-stop-browser-from-closing-或禁用.aspx
尝试这个:
$( window ).unload(function() {
alert( "Handler for .unload() called." );
});
或者,如果你想要构象警报
<script>
window.onbeforeunload = function(e) {
return 'Your dialog message';
};
</script>