我有一个 beforeunload 处理程序,当用户实际导航离开页面时调用该处理程序:
$(window).on("beforeunload", function () {
cleanup();
});
我的应用程序的另一部分可能会添加另一个 beforeunload 处理程序,询问用户是否真的想因为正在进行的操作而离开:
$(window).on("beforeunload", function () {
return "Do you really want to leave";
});
我如何确保第二个处理程序将始终首先被调用,并且如果用户决定留在页面上,第一个处理程序将不会被调用?
我已经尝试使用 unload
事件来代替。但这不起作用,因为它不会可靠地执行我的清理函数和该函数内的后端调用。
最佳答案
您可以使用window.confirm以防万一。如(伪代码)
$(window).on("beforeunload", function () {
var result = window.confirm('Do you really want to quit?');
if (result) {
cleanup();
}
}
这样,如果用户想要退出,它将进行清理。这有效吗?>
关于javascript - 如果用户由于第二个处理程序中的对话框而停留在页面上,则跳过 beforeunload 处理程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36617601/