Javascript 为什么onbeforeunload总是显示一个对话框

Javascript 为什么onbeforeunload总是显示一个对话框,javascript,html,Javascript,Html,我试图让我的javascript弹出一个对话框,如果有尚未写入的数据,但它总是显示确认对话框,即使没有要写入的内容 我已将问题简化为这一最小失败案例: window.addEventListener("beforeunload", (e) => { e.returnValue = null; return null; }); 在我的代码中,windows总是要求确认(Chrome和Firefox)。将空值更改为未定义值不会改变任何内容 有人能给我一个线索吗?试试使用返回以

我试图让我的javascript弹出一个对话框,如果有尚未写入的数据,但它总是显示确认对话框,即使没有要写入的内容

我已将问题简化为这一最小失败案例:

window.addEventListener("beforeunload", (e) => {
    e.returnValue = null;
    return null;
});
在我的代码中,windows总是要求确认(Chrome和Firefox)。将空值更改为未定义值不会改变任何内容


有人能给我一个线索吗?

试试使用
返回以避免触发确认提示

如果返回“”、null、false,则可能会触发提示

如果要禁用该对话框

window.addEventListener("beforeunload", (e) => {
    .....
return;
});
希望这对…有帮助

在jquery上工作:


如果
event.returnValue
设置为非空,将显示确认对话框。和
undefined
null
在Javascript中不是空的。如果我理解你想做什么,你应该使用一个条件,并且只在条件为真时设置/返回一些东西。换言之:

window.addEventListener("beforeunload", (e) => {
    if (dataWaitingToBeSent) {
        e.returnValue = null;
        return null;
    }
});
参考资料:

我尝试将returnValue设置为undefined并返回undefined,但仍然显示确认对话框。还有false、“false”和“.Check out@Jabberwock”在我的代码中,windows总是要求确认”-您还希望它做什么“在页面即将卸载时向窗口开火,以防页面想要显示警告提示”-您是否认为您可以通过阻止用户离开页面到其他位置而不让他们对此事有任何发言权,从而在页面上“诱捕”用户。。。?当然不是。我想他只是给他们一个机会让他们的数据完成发送。听起来对我来说是个警告,不是陷阱。我想象在做了一些编辑后,谷歌文档在离线模式下会出现类似的情况。不,当然不是。目标是让用户的导航请求在不使用对话框打扰的情况下执行。Deadpixels下面的回答正是我需要的答案。
window.addEventListener("beforeunload", (e) => {
    if (dataWaitingToBeSent) {
        e.returnValue = null;
        return null;
    }
});