有没有一种方法可以使用jQuery或JavaScript检测用户是否按了刷新按钮?

4
我想知道jquery或javascript是否能检测到用户是否按下了浏览器的刷新按钮?如果可以,能否给我一个例子?

4
你真正想在这里做什么? - Justin Ethier
5个回答

2

无法检测用户在页面刷新之前是否按下了刷新按钮,但是可以使用cookie来确定页面在第二次加载后是否刷新。

例如,每个页面都可以将 location.href 存储在一个cookie中,如果最后一个cookie等于当前页面的相同 location.href,则用户很可能刷新了页面。


1

在页面即将刷新之前,window.onunload事件将被触发。

window.onunload = function(){
    alert("unload event detected!");
}

6
当用户按下返回按钮或点击任何链接时,也会触发它。这并没有告诉你关于刷新的任何信息。 - roufamatic
在我的情况下,使用backbone,这实际上只能捕获刷新事件,因为浏览器的后退按钮不会重新加载页面,只会通过backbone历史记录进行导航。但是,在任何“常规”Web应用程序中,我认为你是正确的。 - wuliwong

0
如果你想检测用户是否按下了F5或ctrl+f5,那么你可以使用以下代码 :)
$("body").keydown(function (e)
{
   if (e.which == 116 || e.which == 17) {
     inFormOrLink = true;
   }
});

0

我不确定你是否能够这样做,但是你可以使用一个hacky的解决方法,从服务器渲染引用页面的URL到一个隐藏的输入框中,然后在页面加载时,检查隐藏div的值是否与当前URL相同。如果是,则必须是一个postback或刷新。


0

有1种方法可以检测它。

检查F5是否被按下。至于检测实际的刷新是否被点击,我不确定是否可能,但您可以根据按键代码进行检查。

JS代码 .keypress()


3
假设 F5 会导致页面刷新。 - RobG

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接