2017-07-31 80 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

對不起,但它是依賴於瀏覽器的問題。我不知道這種情況下的任何解決方案。 –

相關問題