如何捕捉刷新按鈕(f5)?我有一個任務,包括幾個部分:
- 當我刷新(反正這個動作) - 我必須清除我的localStorage;
- 如果更改url或關閉頁面 - localStorage必須保存他的狀況。
我發現了幾個topict連接這樣的問題。主要結論是使用window.onbeforeunload,但同時,此事件隨時觸發(不僅在刷新頁面時,即使您更改了url/ctrl + shift + r/f5/ctrl + r等....)。
我們有什麼方法只捕捉刷新事件嗎?例如:與url進行比較的一些方法(當前和哪個用戶想要打開,如果它們是相同的 - 刷新)?如何在不捕捉關閉事件或更改url事件的情況下捕獲僅刷新事件?
0
A
回答
0
你想要的是不可能的。刷新操作不可捕捉。 但是你可以實現這個變通方法,行爲:
if(self.window.name.indexOf("justAwordToNowisYourWindow")!=0){
self.window.name = "justAwordToNowisYourWindow";
alert("first Load");
}else{
alert("reload");
}
此外,作爲一個很好的做法,使用時間戳來防止怪異的行爲,如果你的應用程序的多個窗口被打開:
var n = Date.now();
if(self.window.name.indexOf("justAwordToNowisYourWindow")!=0)
{
self.window.name = "justAwordToNowisYourWindow"+n;
alert("first Load");
}else{
alert("reload");
}
+0
我在想這個,但在我的版本中,我需要從beforeunload事件返回一些值。我怎麼理解,我們不能這樣做?還是它對我在卸載之前工作的誤解?如果只有我可以捕獲返回值,所有將更容易))) –
+0
您可以使用窗口的名稱和您需要返回的值在before unload事件中創建一個cookie。關於業務規則的更多細節我們可以解決它。 –
相關問題
- 1. 捕捉瀏覽器關閉事件沒有刷新事件
- 2. 如何捕捉「關閉」點擊事件?
- 3. 如何捕捉窗口關閉事件?
- 4. 捕捉事件
- 5. 捕捉事件
- 6. 捕獲tabpage關閉事件
- 7. 如何捕捉fontSize更改事件?
- 8. SearchView:無法捕捉關閉事件
- 9. 捕捉瀏覽器關閉事件
- 10. 如何捕捉dojox.mobile.view事件?
- 11. 如何捕獲NSSharingService關閉事件
- 12. 如何捕獲datePicker關閉事件
- 13. 通過javascript捕獲URL更改事件
- 14. Keydown事件:如何捕捉關鍵行?
- 15. Angular 4材料捕捉更改事件
- 16. 無法捕捉到CKEditor更改事件
- 17. Photoswipe捕獲刷卡事件
- 18. 如何捕捉dropzonejs插件的事件
- 19. 在VBScript中捕捉事件
- 20. 在模態關閉後捕捉Angular Bootstrap UI $ uibModal關閉事件
- 21. 如何捕捉Facebook「不像」事件?
- 22. 如何在java swing中捕捉關閉事件
- 23. 如何在電話顯示關閉時捕捉按鈕事件
- 24. 如何在iOS中關閉RNBlurModalView時捕捉事件
- 25. 如何在Chrome瀏覽器中捕捉事件關閉?
- 26. 捕獲窗口關閉事件
- 27. YUI燈箱關閉捕獲事件
- 28. 關閉瀏覽器捕獲事件
- 29. ember.js:捕捉url輸入事件
- 30. 如何在javascript中捕捉「History.Back」事件?
HTTP:/ /stackoverflow.com/questions/18457797/how-to-know-whether-refresh-button-or-browser-back-button-is-clicked-in-firefox 是否有幫助? –
[在瀏覽器中檢測返回按鈕單擊]的可能的重複(http://stackoverflow.com/questions/6359327/detect-back-button-click-in-browser) – CodeMonkey
不,我讀了這個,但溶劑沒有幫助我。主要原因是它包含一個beforeunload事件,女巫抓住所有事件。在我的身邊,我只需要f5或刷新按鈕。 –