gpt4 book ai didi

javascript - 在使用 window.onbeforeunload 关闭窗口之前等待函数完成

转载 作者:行者123 更新时间:2023-11-30 15:53:19 24 4
gpt4 key购买 nike

我需要你的帮助,

似乎当我关闭窗口(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")

}
}

最佳答案

当您确认关闭由onbeforeunload 事件触发的窗口时,它会立即关闭;您不能取消后续操作(真正的关闭)。在这种情况下,您所能做的就是警告用户有关未保存的更改,并给他机会不确认操作。

我不是 100% 确定,但我认为 alertconfirm 函数会卡住 DOM,因此在用户交互之前不会发生任何事情。

IMO,您应该更改应用的设计。

关于javascript - 在使用 window.onbeforeunload 关闭窗口之前等待函数完成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38979702/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com