为什么 FireFox window.onbeforeunload() 仅在显示确认对话框时触发?

Why does FireFox window.onbeforeunload() only fire when a confirmation dialog is displayed?

如果我为 'onbeforeunload' 注册一个监听器,控制台输出只会在显示确认对话框时被记录。

//有效

window.onbeforeunload = function(e) { 
    console.log('onbeforeunload');
    return 'a string';
}

但是,删除"return 'a string';",控制台语句将不会显示。

//失败

window.onbeforeunload = function(e) { 
    console.log('onbeforeunload');
}

如何在不向用户显示确认对话框的情况下记录发生的事件?这适用于 Chrome.

字符串总是被记录,只是没有确认对话框,浏览器正在导航到新页面(或重新加载)并清除日志。

您可以使用启用持久日志设置来保留消息:https://developer.mozilla.org/en-US/docs/Tools/Settings