2016-04-15 94 views
1

的所有可能的情況下,我看這兩個問題:檢測頁面刷新

How can I detect browser tab refresh or close using javascript

How do I detect a page refresh using jquery?

這表明結合'onbeforeunload'F5Ctrl-R按鍵也結合,這是很好的建議。

不過,大多數瀏覽器都有一個刷新按鈕,他們的地址欄,這樣在Chrome:

enter image description here

的問題是:它可以檢測並綁定刷新瀏覽器的地址欄中的刷新按鈕的事件?

+0

onbeforeunload應該在按下刷新按鈕(或按下地址欄上的輸入)時觸發。 –

+0

如果你有一個'beforeunload'事件不是由'F5'或'Ctrl-5'觸發的,那麼很有可能通過你提到的重載按鈕觸發它。 –

回答

1

通過綁定onbeforeunloadwindow像這樣window.onbeforeunload它應該在大多數瀏覽器中觸發。檢查這個fiddle。它似乎不支持IOS設備。

對於IOS蘋果文檔建議使用pagehide請參閱Handling Events上的蘋果頁面。

加載和卸載事件可能不像預期的那樣對後退和前向優化起作用。改用pageshow和pagehide事件。

請記住,這也會觸發離開頁面的所有其他類型的導航。如關閉,標籤關閉,後退/前進導航,鏈接導航和地址欄導航

檢查瀏覽器是否正在重新加載而不是導航離開頁面我非常有信心是不可能的,由於安全/隱私原因能夠給你的目的地網址。你可以通過使用它來消除鏈接壓力,這是發射onbeforeunload時的一個條件。

編輯:如果您需要檢查頁面是否已重新載入,您可以使用sessionvariables或cookie來存儲用戶已經打開過一次頁面。