Javascript 卸载前确认呼叫的故障排除

Javascript 卸载前确认呼叫的故障排除,javascript,jquery,onbeforeunload,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 {

我的代码:

//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;
    }
};
三个变量(
formChanges
formData
、和
initFormData
)都已正确填充,少量测试表明它们在函数中被正确读取。问题是,无论什么情况,页面都不会卸载,并且不会出现确认对话框


卸载前控制台日志会闪烁片刻(我似乎无法将其内容写入文件),在卸载前我可以看到消息
Blocked confirm'here',beforeunload
,但在我访问它之前它就消失了。感谢您的帮助

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

window.onbeforeunload = function(e) {
  return 'Dialog text here.';
};

来源:

这可能是旧版本的,但给调试人员一个提示。在控制台(至少在Google Chrome中)的设置检查下,这将保留“闪现”错误,以便您可以看到它们。这是否意味着我无法在函数中运行
if else
语句?不管怎样,我看到它只能返回字符串,而且不会跨浏览器运行。谢谢