Javascript onbeforeunload onunload performance.navigation.type工作不正常

Javascript onbeforeunload onunload performance.navigation.type工作不正常,javascript,reactjs,window,onbeforeunload,window.onunload,Javascript,Reactjs,Window,Onbeforeunload,Window.onunload,我使用了reactjs应用程序,我试图在浏览器关闭时显示警报。但是一些不一致的行为正在出现。有时浏览器刷新时不会触发警报,但有时会显示警报。下面是我的代码:- window.onbeforeunload = () => { let msg =undefined; if (window.performance && performance && performance.navigation.type == 1){ } e

我使用了reactjs应用程序,我试图在浏览器关闭时显示警报。但是一些不一致的行为正在出现。有时浏览器刷新时不会触发警报,但有时会显示警报。下面是我的代码:-

window.onbeforeunload = () => {
    let msg =undefined;
     if (window.performance && performance && performance.navigation.type == 1){

     }
     else{
         msg ='Are you sure?';
     }
    return msg;
};
 window.onunload = () => {
        if (localStorage.getItem('state')) {
            localStorage.removeItem('state');
        }
    }

现在,它有时会显示浏览器关闭按钮单击时的警报,但有时会在没有任何警告的情况下关闭浏览器,还有一些刷新警报的时间即将到来,这在我的场景中是不希望的。我只想在浏览器关闭时显示警报。请帮助我如何处理此场景。StackOverflow中也存在许多类似的重复问题,但所有答案都是旧的,并且没有使用现代浏览器概念。

您不能在window.onbeforeunload或window.onunload事件中检测用户是否要重新加载或是否要更改页面

PerformanceNavigation API仅告诉您用户如何进入当前页面,而不是如何在window.onbeforeunload或window.onunload事件上导航到下一页