2011-12-16 69 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