onbeforeunload onunload performance.navigation.type无法正常工作

时间:2017-08-30 10:18:01

标签: javascript reactjs window onbeforeunload window.onunload

我有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中也出现了许多这样的重复问题,但所有答案都很旧,而且他们没有使用现代浏览器概念。

1 个答案:

答案 0 :(得分:1)

您无法检测用户是否要重新加载,或者是否想要在window.onbeforeunloadwindow.onunload事件中更改页面。

PerformanceNavigation API仅告诉您用户如何转到当前页面,而不是如何导航到window.onbeforeunloadwindow.onunload个事件的下一页。