你可以尝试使用window.onunload
:
window.onbeforeunload = function() {
return "Are you sure?";
}
window.onunload = function() {
console.log("Too bad. Goodbye.");
}
window.onunload
将只有当用户点击“离开该页面”按钮被解雇。
如果你想,如果用户点击“取消”做一些事情,你可以试试下面的办法:
window.onbeforeunload = function() {
setTimeout(function() {
setTimeout(function() {
console.log("Great decision!");
}, 200);
}, 1);
return "Are you sure?";
}
第一setTimeout
把你的代码的事件队列。它会在确认框关闭后立即被触发。如果页面未过早关闭,第二个setTimeout
将在一段时间后被触发。
对于那些正在做一些XHR onunload
的人:确保在页面关闭之前使用同步方法完成请求。例如。在普通的js中使用async: false
的jQuery.ajax
或XMLHttpRequest.open(method, url, false)
。
来源
2014-01-31 11:21:36
vbo
你见过这个讨论吗? http://stackoverflow.com/questions/821011/how-do-you-prevent-javascript-page-from-navigating-away – pistacchio