我希望在卸载页面之前出现确认框,如果用户点击确定,则需要在离开页面之前调用一个函数,如果他点击取消,则应保留在同一页。
window.onbeforeunload = function() {
if (!submitFormOkay) {
if (confirm("Are you sure you want to leave?")) {
leavepage();
} else {
submitfromokay = true;
location.reload();
}
}
}
有没有任何方式可以使用JS使这个工作正常?
setTimout()
调用来尝试。我们想要实现的是,在模态对话框出现之前,我们设置了一个函数调用在浏览器的 UI 队列中执行。第二个(嵌套的)setTimeout
在模态对话框关闭时触发。由于我们不知道用户选择留下还是离开(我们只知道对话框已关闭),因此我们可以将第二个超时设置为 1000ms 或更长时间,以确保如果用户选择离开,则卸载将中断调用。 - jAndy