使用jQuery或JavaScript防止用户重新加载页面

6

可能是重复问题:
如何使用JavaScript或jQuery防止用户重新加载(刷新)HTML页面。

在第一次加载页面后,如何使用JavaScript或jQuery阻止用户重新加载(刷新)网页,无论是通过按F5键、浏览器刷新还是其他方式。

我能做到吗?

注意: 我尝试过window.onbeforeunload,但我不知道如何停止它的window.onload事件。

有什么帮助吗?


1
这个其他的SO页面回答了你的问题:https://dev59.com/XHA75IYBdhLWcg3wAD_x - C0deH4cker
3
使用 JavaScript 或 jQuery - 注意:如果用 JS 实现不了,那么用 jQuery 也实现不了。 - nnnnnn
我知道,但我的意思是如果我可以用jQuery做到这一点,那么最好还是用JavaScript来做。 - Georgian Citizen
C0deH4cker,我尝试使用https://dev59.com/XHA75IYBdhLWcg3wAD_x,但是在警报框询问我是否留在页面或离开后,如果我选择留下,它可以正常工作,但是如果我选择离开,它也会调用onload事件,而我不需要它。 - Georgian Citizen
@mbayloon,如果用户想要重新加载页面,你无法阻止它。请查看下面我的答案。 - gopi1410
2个回答

9

如果用户想要重新加载或关闭页面,你无法阻止他们。但是你可以使用以下两种方法之一:

你可以像这样请求确认:

<script>
window.onbeforeunload = function (e) {
e = e || window.event;

// For IE and Firefox prior to version 4
if (e) {
    e.returnValue = 'Sure?';
}

// For Safari
return 'Sure?';
};
</script>

这是上面的演示链接:http://jsfiddle.net/gopi1410/NujmL/

按下F5键时,可以使用以下方法防止默认行为:

document.onkeydown = function(event) {
  if(window.event){
        event.preventDefault();
  }
}

我尝试了你的答案,但是正如我所说,我的问题是避免调用windows.onload。 - Georgian Citizen
@mbayloon 这是不可能的,就像上面两个答案中提到的那样。 - gopi1410

7
不可以。如果用户想要重新加载页面,您无法阻止他们。

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