【问题标题】:How to disable F5 and Refresh in Firefox browser?如何在 Firefox 浏览器中禁用 F5 和刷新?
【发布时间】:2012-09-05 08:30:14
【问题描述】:
<Script language="javascript">
function checkKeyCode(evt)
{

var evt = (evt) ? evt : ((event) ? event : null);
var node = (evt.target) ? evt.target : ((evt.srcElement) ? evt.srcElement : null);
if(event.keyCode==116)
{
evt.keyCode=0;
return false
}
}
document.onkeydown=checkKeyCode;
</script> 

我试过了,它在 IE 中运行良好,但在 Firefox 中无法运行........请帮助我。

【问题讨论】:

  • 你不能在用户浏览器上强制任何东西
  • 为什么?!刷新是浏览器的基本功能。 合作,而不是反对它。还提示:F5 只是“刷新”的 Windows 约定。有更多的平台,并且总是有一个工具栏按钮可以做同样的事情。
  • 嘿伙计们,实际上我的问题是每当我刷新它再次提交的表单并抛出异常时,这就是我想在我的应用程序中禁用刷新的方式。
  • 这不是解决问题的方法。提交表单后,立即重定向到另一个页面,因此刷新目标页面不会再给您带来问题。另一种解决方案是忽略重复提交。
  • Twitter 网站禁用 F5

标签: javascript jquery jsp


【解决方案1】:

经典XY problem。你是在寻求一个问题的解决方案,而不是一个需要以完全不同的方式解决的问题的非解决方案。

正确的模式称为 POST-redirect-GET。在每个 POST 请求(表单提交)之后,您将用户重定向到不同甚至相同的页面,这会导致常规 GET 请求。当用户随后刷新页面时,将发出一个常规的 GET 请求,而无需重新提交表单。

有关更多详细信息,请参阅Trying to understand the Post/Redirect/Get design pattern (implemented with PHP) 和类似问题。

【讨论】:

    【解决方案2】:

    使用 jquery

    $(document).keypress(function(e){
      if(e.keyCode==116){
        return false;
       }
    }
    

    【讨论】:

      猜你喜欢
      • 2021-10-05
      • 1970-01-01
      • 2018-01-09
      • 2014-01-01
      • 2014-01-18
      • 2010-10-18
      • 2010-09-27
      • 2012-08-31
      相关资源
      最近更新 更多