有没有一种方法可以覆盖刷新按钮的操作?

5

我希望使用某种preventDefault函数来覆盖浏览器上刷新按钮或按下CTRL/CMD+R时的操作。

有没有什么方法可以防止页面刷新?

我尝试过这个方法,但在Firefox中似乎没有任何作用。

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

1
也许是 window.onunload = window.onbeforeunload = function(){ - Ohgodwhy
这种工作很常见...谢谢。 - Todd Jenk
1个回答

8
您可以使用onbeforeunload来提示用户是否离开:
window.onbeforeunload = function() {
    return "Are you really sure?\nI don't know why anyone would want to leave my beautiful website!";
};

然而,你不能对其进行更多的覆盖。


1
根据我的经验,JavaScript 中没有解决这个问题的方法,尽管它存在,但不适用于所有浏览器。我已经通过从客户端读取和写入 cookie 值来在服务器上实现了此功能。 - Pavan Kumar K
1
合情合理,想象一下如果可以像这样覆盖默认浏览器行为会造成怎样的混乱! - Andreas Josas
这对于像刷新视频评论反馈而不重置播放等类似操作非常有用。 - Erik Kaplun

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