beforeunload 确认调用故障排除

Eam*_*onn 4 javascript jquery onbeforeunload

我的代码:

//hold window open on form change
window.onbeforeunload = function(e) {
    if(formChanges > 0) {
        if(formData != initFormData) {
            if(confirm('here')) {
                e.preventDefault();
            }
            else {
                e = null;
            }
        }
        else {
            e = null;
        }
    }
    else {
        e = null;
    }
};
Run Code Online (Sandbox Code Playgroud)

三个变量(formChangesformDatainitFormData)都已正确填充,并且几乎没有测试表明它们在函数内被正确读取。问题是无论如何页面都会卸载,并且不会出现确认对话框。

控制台日志在卸载之前闪烁了一会儿(我似乎无法将其内容写入文件),并且我可以看到该消息Blocked confirm 'here' during beforeunload,但在我可以访问它之前它就消失了。任何帮助表示赞赏!

spa*_*gel 6

当使用 onbeforeunload 时,你必须返回一个字符串,如下所示:

window.onbeforeunload = function(e) {
  return 'Dialog text here.';
};
Run Code Online (Sandbox Code Playgroud)

来源:https ://developer.mozilla.org/en-US/docs/Web/API/Window.onbeforeunload