2017-08-30 126 views
0

我有reactjs应用程序,我试图在浏览器close.but显示警报,但一些不一致的行为即将到来。有时它是不触发浏览器刷新警报,但有时它显示了alert.Below是我的代码: -onbeforeunload onunload performance.navigation.type not working properly

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

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

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

+0

如何仅在浏览器关闭时显示警报。 – jack123

+0

你不能,阅读我的答案。 –

+0

为什么downvote? –