如果有数据尚未写入,我试图让我的javascript弹出一个对话框,但它总是显示确认对话框,即使没有任何要写的内容。
我已将问题减少到这个最小的失败案例:
window.addEventListener("beforeunload", (e) => {
e.returnValue = null;
return null;
});
在我的代码中,Windows始终要求确认(Chrome和Firefox)。将空值更改为未定义的内容并不会改变任何内容。
有人可以借给我一些线索吗?
答案 0 :(得分:1)
如果event.returnValue
设置为非空,则会显示确认对话框。 Javascript中undefined
和null
不是空的。如果我理解你正在尝试做什么,你应该使用条件,只有在条件为真时才设置/返回一些东西。换句话说:
window.addEventListener("beforeunload", (e) => {
if (dataWaitingToBeSent) {
e.returnValue = null;
return null;
}
});