如果有尚未写入的数据,我试图让我的javascript弹出一个对话框,但它总是显示确认对话框,即使没有任何要写的内容。
我已将问题减少到这个最小的失败案例:
window.addEventListener("beforeunload", (e) => {
e.returnValue = null;
return null;
});
在我的代码中,Windows始终要求确认(Chrome和Firefox)。将null更改为undefined不会改变任何内容。
有人可以借给我一些线索吗?
如果event.returnValue
设置为非空,则会显示确认对话框。并且undefined
和null
在Javascript中不是空的。如果我理解你要做什么,你应该使用条件,只有条件为真时才设置/返回一些东西。换一种说法:
window.addEventListener("beforeunload", (e) => {
if (dataWaitingToBeSent) {
e.returnValue = null;
return null;
}
});
尝试使用return;
以避免触发确认提示。
如果你返回'',null,false它可能会触发提示。
如果要禁用该对话框
window.addEventListener("beforeunload", (e) => {
.....
return;
});
希望这可以帮助 ...!
关于jquery的工作小提琴:https://jsfiddle.net/KishorVelayutham/wfd2xsxk/10/
return ; will stop prompting the dialog.