我试图阻止用户刷新包含表单的页面。基本上,我想阻止用户按 Ctrl + R , F5 和 Ctrl + F5
假设我有以下
<form action="#">
<input type="text" />
</form>
以下js代码
<script>
document.onkeydown = function() {
switch (event.keyCode) {
case 116 : //F5 button
event.returnValue = false;
event.keyCode = 0;
return false;
case 82 : //R button
if (event.ctrlKey) {
event.returnValue = false;
event.keyCode = 0;
return false;
}
}
}
</script>
它似乎停止在Chrome中。但是,在firefox上仍然可以按 F5 !?什么是阻止用户重新提交表单/ aka停止刷新
的方法答案 0 :(得分:2)
超越这些功能是一个非常糟糕的主意。这不是JavaScript可以正常做的事情。您需要让刷新发生,并使用onbeforeunload
事件:
请参阅此重复问题:
Is there a way to overwrite the refresh button action?
这一个:
Is there a way to capture/override Ctrl-R or F5 on IE using Javascript?
用它来捕捉你想要的东西:
window.onbeforeunload = function(){
//de ... Do something else.
}
答案 1 :(得分:1)
尝试使用此代码,它可以在chrome和Firefox中停止刷新页面
$(document).keydown(function(objEvent) {
if (objEvent.ctrlKey) {
return false;
}
});