2011-12-16 66 views
2

我正在尋找一種方法來確定,如果用戶刷新頁面或使用JavaScript點擊F5(更具體Prototype JavaScript庫)...辦法知道瀏覽器刷新或F5一直打到

我編碼的應用程序需要在網頁上記錄刷新或F5的數量以進行統計。在這種情況下刷新或F5意味着用戶跳過或逃避做頁對他的工作:)所以統計數據可以幫助他們找到有多少人正在這樣做:) ..警務類...

+1

是否點擊地址欄,然後點擊Enter算作刷新? – 2011-12-16 09:25:25

回答

3

把下面的代碼段上每個頁(只有這樣,你可以刷新/導航之間不同):

var last = localStorage["lastPage"] || "", 
    current = location.href; 

if(last === current) { // last page is the same as this page 
    // this is a refresh 
] 

localStorage["lastPage"] = current; 

它只有在同一個域上導航而不是這樣做(即去另一個網站,然後返回到同一個頁面纔算刷新)。

0

你可以檢查keycode = 116,並檢測按鍵事件。

+0

我想他會問到如何檢測頁面刷新,而不僅僅是檢測F5鍵... – 2011-12-16 08:58:47

1

在加載頁面,保存時間標記爲持久性存儲(無論是Web Storage或餅乾)。

在此之前,檢查時間戳已經在那裏了。然後根據需要比較郵票。

var MIN_TIME = 60e3 // 60 seconds 

var key = location.href 
var now = Date.now() 
var previousVisit = localStorage.getItem(key) || now 

localStorage.setItem(key, now) 

if (now - previousVisit < MIN_TIME) { 
    alert('You lazy sloth!') 
} 
1

這是一個非常簡單的解決方案:window.onbeforeunload

+0

如果你只是關閉的標籤/窗口將被觸發。 – katspaugh 2011-12-16 10:08:24

+0

是的,但要求是«意味着用戶跳過或逃避做頁面他的工作»,所以我猜它適用。 – 2011-12-16 14:00:28