如何在刷新时触发 beforeunload 警告但在提交时不触发
How can I trigger beforeunload warning when refreshing but not when submitting
第 1 页包含动态表单,第 2 页是对提交数据的审核。我有以下限制条件:
- 提交第 1 页时没有
beforeunload
警告;
beforeunload
刷新第 1 页时出现警告;
从第 2 页发出 history.back()
时没有重新加载第 1 页。
我尝试使用 window.onbeforeunload
和 $(window).unload()
(在第 1 页),但我似乎无法获得预期的结果。
这甚至可能吗,或者这些约束是否绝对矛盾(我的意思是,对于合理数量的 JS 行……)?
更新:
我删除了约束 3,因为根据一些阅读,它值得 its own question。
您应该能够在第 1 部分和第 2 部分使用类似的东西,但不确定您对第 3 部分的意思
"use strict";
var isSubmit = false
document.querySelector('button').addEventListener('click', e => {
isSubmit = true
window.location.reload()
})
window.onbeforeunload = e => {
if (!isSubmit) {
return "Are you sure you want to leave?"
}
}
<button>Submit</button>
第 1 页包含动态表单,第 2 页是对提交数据的审核。我有以下限制条件:
- 提交第 1 页时没有
beforeunload
警告; beforeunload
刷新第 1 页时出现警告;从第 2 页发出history.back()
时没有重新加载第 1 页。
我尝试使用 window.onbeforeunload
和 $(window).unload()
(在第 1 页),但我似乎无法获得预期的结果。
这甚至可能吗,或者这些约束是否绝对矛盾(我的意思是,对于合理数量的 JS 行……)?
更新:
我删除了约束 3,因为根据一些阅读,它值得 its own question。
您应该能够在第 1 部分和第 2 部分使用类似的东西,但不确定您对第 3 部分的意思
"use strict";
var isSubmit = false
document.querySelector('button').addEventListener('click', e => {
isSubmit = true
window.location.reload()
})
window.onbeforeunload = e => {
if (!isSubmit) {
return "Are you sure you want to leave?"
}
}
<button>Submit</button>