【问题标题】:Way to know browser refresh or F5 has been hit知道浏览器刷新或 F5 已被击中的方法
【发布时间】:2012-01-21 19:54:35
【问题描述】:

我正在寻找一种方法来识别用户是否使用 Javascript(更具体地说是原型 Javascript 库)刷新页面或点击 F5...

我正在编写一个应用程序,该应用程序需要记录网页上的刷新次数或 F5 以用于统计目的。在这种情况下,刷新或 F5 意味着用户正在跳过或逃避在页面上做他的工作 :) 所以统计数据可以帮助他们找到有多少人在做这件事 :).. 一种监管。 ..

【问题讨论】:

  • 点击地址栏并按回车是否算作刷新?

标签: javascript refresh dom-events


【解决方案1】:

将以下代码放在每个页面上(只有这样你才能在刷新/导航之间有所不同):

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;

这只是在同一个域上导航和不这样做之间的区别(即转到另一个网站然后返回到同一个页面算作刷新)。

【讨论】:

  • 将你的想法融入我的回答中,将地址存储为key。
【解决方案2】:

这是一个更简单的解决方案:window.onbeforeunload

【讨论】:

  • 只要关闭标签/窗口就会触发。
  • 是的,但要求是«意味着用户正在跳过或逃避在页面上执行他的工作»,所以我猜它适用。
【解决方案3】:

加载页面后,将时间戳保存到持久存储中(Web Storage 或 cookie)。

在此之前,检查时间戳是否已经存在。然后根据需要比较邮票。

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!')
}

【讨论】:

    【解决方案4】:

    您可以检查 keycode = 116 ,并检测按键事件。

    【讨论】:

    • 我想他问的是如何检测页面刷新,而不仅仅是检测 F5 键...
    猜你喜欢
    • 2014-01-18
    • 2010-10-18
    • 2014-01-01
    • 1970-01-01
    • 2021-10-05
    • 2010-09-27
    • 2012-09-05
    • 2012-08-31
    相关资源
    最近更新 更多