我需要你的帮助,
似乎当我关闭窗口(IE 11)时,弹出确认框,然后单击确定按钮,该功能想要运行,但是在功能有机会完成之前窗口关闭(保存记录到数据库)。如何修改代码,使得函数imts_save_changes()在关闭窗口之前有机会完成其数据库操作?
这是标记:
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<style type="text/css">
</style>
<script type="text/javascript">
window.onbeforeunload = function() { return test() }
function test() {
if (confirm("would you like to run the last function before closing the window?")) {
imts_save_changes()
alert("record saved")
}
}
</script>
</head>
<body></body>
</html>
有问题的代码:
window.onbeforeunload = function() { return test() }
function test() {
if (confirm("would you like to run the last function before closing the window?")) {
imts_save_changes()
alert("record saved")
}
}
答案 0 :(得分:2)
当confirm
关闭onbeforeunload
事件触发的窗口时,会立即关闭;你不能取消后续行动(实际结束)。您所能做的就是警告用户,在这种情况下是关于未保存的更改并给他机会不确认操作。
我不是100%肯定,但我认为alert
和confirm
函数会冻结DOM,因此在用户交互之前不会发生任何事情。
IMO,您应该更改应用的设计。