2017-07-31 45 views
0

场景:我想在用户离开页面时在localstorage中设置一些变量。使用window.onbeforeunload我得到用户即将离开页面的事件。但我想设置不同的变量值,当用户刷新和页面导航不同如何检查用户是刷新页面还是导航到其他页面

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

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

+0

难道我明白你的问题吧? performance.navigation将在新页面加载后可用。我希望它对你有用。 –

+0

@AhmetCanGüven不,我想在导航本身之前进行一些事件。感谢您的帮助,虽然 –

+0

编辑我的回答您的评论。 –

回答

3

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

请检查performance navigation

if (performance.navigation.type == PerformanceNavigation.TYPE_RELOAD){ 
//Reload 
} 

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

这是行不通的,如果我只是去网址,并回车。我知道它不刷新,但仍然是相同的网址。任何方式来检测这个? Chrome在这种情况下也返回true,但在Firefox中不工作,Safari浏览器直接访问网址 –

+0

对不起,但它是依赖于浏览器的问题。我不知道这种情况下的任何解决方案。 –

相关问题