检测 F5 被按下并刷新

Posted

技术标签:

【中文标题】检测 F5 被按下并刷新【英文标题】:Detect F5 being pressed and Refresh 【发布时间】:2010-10-28 19:53:10 【问题描述】:

我有一个网络表单,我想检测是否按下了 F5 按钮或是否刷新了页面。我知道回发,但这不是我要找的。我有一个gridview,当单击按钮并为gridview设置参数值时,它会在模式弹出窗口中加载。当刷新被点击并且如果先前单击了模式弹出按钮,则模式弹出在刷新后立即可见。我想检测页面是否刷新以防止这种情况。有任何想法吗?我想尝试覆盖,但我不确定如何使用它。我尝试了 Control.ModifierKeys,但我无权访问 ModifierKeys。

【问题讨论】:

【参考方案1】:

按 F5 或物理单击浏览器刷新的行为类似于离开页面。这在事件 window.onunload 中被捕获。试试下面的snippet 示例:

window.onbeforeunload = function (evt) 
  var message = 'Are you sure you want to leave?';
  if (typeof evt == 'undefined') 
    evt = window.event;
  
  if (evt) 
    evt.returnValue = message;
  
  return message;

这将捕获刷新并允许您执行某些操作或提示用户。

【讨论】:

【参考方案2】:

请记住,热键是在浏览器的客户端处理的。实现这一点的最简单方法是通过 javascript

请看以下链接:

http://snippets.dzone.com/posts/show/3552

【讨论】:

以上是关于检测 F5 被按下并刷新的主要内容,如果未能解决你的问题,请参考以下文章

检测浏览器刷新

如何检测音量上下是不是被按下

检测功能键被按下的最佳方法是啥?

如何检测 Ctrl+R 被按下?

Xamarin Forms iOS 应用程序检测到“返回”被按下

汇编语言检测鼠标右键是不是被按下了