我有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中也出现了许多这样的重复问题,但所有答案都很旧,而且他们没有使用现代浏览器概念。
答案 0 :(得分:1)
您无法检测用户是否要重新加载,或者是否想要在window.onbeforeunload
或window.onunload
事件中更改页面。
PerformanceNavigation
API仅告诉您用户如何转到当前页面,而不是如何导航到window.onbeforeunload
或window.onunload
个事件的下一页。