Javascript 如何检查用户是否正在刷新页面或导航到其他页面

Javascript 如何检查用户是否正在刷新页面或导航到其他页面,javascript,jquery,Javascript,Jquery,场景:每当用户离开页面时,我想在本地存储中设置一些变量 使用window.onbeforeunload我得到一个事件,用户将要离开页面。但我想在用户刷新时设置不同的变量值,并在页面导航时设置不同的值 var someVar; //when refresh someVar = 1; //When user clicks on any link which is not the same page, someVar =2 这是否可以检测用户是否正在刷新或即将离开页面?根据您的评论,我正在更新我的答

场景:每当用户离开页面时,我想在本地存储中设置一些变量

使用
window.onbeforeunload
我得到一个事件,用户将要离开页面。但我想在用户刷新时设置不同的变量值,并在页面导航时设置不同的值

var someVar;
//when refresh someVar = 1;
//When user clicks on any link which is not the same page, someVar =2

这是否可以检测用户是否正在刷新或即将离开页面?

根据您的评论,我正在更新我的答案。您无法在卸载之前在
事件上或使用任何其他方法检测导航类型,因为它依赖于浏览器。但我可以为您提供一种在页面加载后检测回显或刷新的方法。我希望它会有用

请查收


根据你的评论,我正在更新我的答案。您无法在卸载之前在
事件上或使用任何其他方法检测导航类型,因为它依赖于浏览器。但我可以为您提供一种在页面加载后检测回显或刷新的方法。我希望它会有用

请查收


我理解你的问题了吗?加载新页面后,performance.navigation将可用。我希望它对你有用。@AhmetCanGüven不,我希望在导航之前有一些活动。谢谢你的帮助。我的回答是你的评论。我理解你的问题了吗?加载新页面后,performance.navigation将可用。我希望它对你有用。@AhmetCanGüven不,我希望在导航之前有一些活动。谢谢你的帮助。如果我只是转到url并按enter键,这将不起作用。我知道它不是刷新,但仍然是相同的url。有没有办法检测到这个?Chrome在这种情况下也会返回true,但在firefox中不起作用,safari在diretURL上运行很抱歉,但这是一个依赖于浏览器的问题。我不知道这个问题的任何解决方案。如果我只是转到url并按enter键,这是不起作用的。我知道它不是刷新,但仍然是相同的url。有没有办法检测到这个?Chrome在这种情况下也会返回true,但在firefox中不起作用,safari在diretURL上运行很抱歉,但这是一个依赖于浏览器的问题。我不知道这个案子有什么解决办法。
if (performance.navigation.type == PerformanceNavigation.TYPE_RELOAD){
 //Reload
}

if (performance.navigation.type == PerformanceNavigation.TYPE_BACK_FORWARD){
 //Back Button
}