Javascript Beforeunload需要与网页进行一些交互,然后网页才会在关闭页面时触发

Javascript Beforeunload需要与网页进行一些交互,然后网页才会在关闭页面时触发,javascript,onbeforeunload,Javascript,Onbeforeunload,我正在试验卸载之前的事件。以下是直接来自MDN的示例: <!DOCTYPE HTML> <html> <head> <meta charset="utf-8"> </head> <script> window.addEventListener('beforeunload', function (e) { e.preventDefault();

我正在试验卸载之前的
事件。以下是直接来自MDN的示例:

<!DOCTYPE HTML>
<html>
    <head>
        <meta charset="utf-8">
    </head>
    <script>
        window.addEventListener('beforeunload', function (e) {
            e.preventDefault(); 
            e.returnValue = '';
        });
     </script>
     <body></body>
</html>     

window.addEventListener('beforeunload',函数(e){
e、 预防默认值();
e、 返回值=“”;
});
按F5键(或关闭选项卡/浏览器)时,浏览器应在页面实际关闭之前询问我是否真的要离开页面

确实如此。但它只有在与网页进行某些交互后才能执行此操作,例如按下F5。我所说的交互是指,例如,在窗口的任意位置单击或按键盘上的任意键

如果我在加载页面后没有单击或按某个键就立即按F5,则页面将在浏览器不询问的情况下关闭

有人能解释一下吗


编辑:这已经用Firefox、Chrome和Edge进行了测试。

当F5按下Chrome和Edge时,它要求重新加载站点。而在Firefox中,它只是在交互之后才发出请求。在MDN中,有一点需要注意:为了防止不必要的弹出窗口,一些浏览器不显示在beforeunload事件处理程序中创建的提示,除非页面已经与之交互。此外,有些根本不显示它们。当F5按下Chrome和Edge时,它要求重新加载站点。而在Firefox中,它只是在交互之后才发出请求。在MDN中,有一点需要注意:为了防止不必要的弹出窗口,一些浏览器不显示在beforeunload事件处理程序中创建的提示,除非页面已经与之交互。此外,有些根本不显示它们。