【问题标题】:Disable F5 in WebBrowser [duplicate]在 WebBrowser 中禁用 F5 [重复]
【发布时间】:2011-04-30 00:20:03
【问题描述】:

可能的重复:
Disable browser's back button
How do I disable the F5 refresh on the browser?

嗨,

我在 C# 中创建了一个应用程序,该应用程序将从 Internet 下载数据(仅完成一次)并将其放入网络浏览器中,这些数据应该是静态的。我想知道是否有办法禁用 F5 键进行刷新?

我尝试注入 javascript 来禁用 F5,但它仍会刷新网络浏览器。

【问题讨论】:

  • 我不能投票重新开放,但如果可以的话,我会的。这个问题询问关于在WebBrowser 控件中禁用 F5,“可能的重复项”不是地址。
  • 我真的不知道为什么这是一个重复的条目。这是在 Windows 窗体上使用 WebBrowser 控件。
  • 投票重新开放,由于上述两位评论者所述的原因,它与其他问题不同。
  • 如果可以的话,我会投票支持重新开放。列出的重复项与 WebBrowserControl 完全没有关系...有没有人想出一个可以让 CTRL+C 仍然工作的解决方案?

标签: c# .net browser


【解决方案1】:

在 onKeyDown 事件上调用此函数

 document.onkeydown = function(e) {
      // keycode for F5 function
      if (e.keyCode === 116) {
        return false;
      }
      // keycode for backspace
      if (e.keyCode === 8) {
        // try to cancel the backspace
        return false;
      }
    };

这将防止 F5 重新加载和退格。

【讨论】:

  • 这不起作用。我通过注入 webbrowser 来尝试这个。在普通的 html 上,这将起作用。
  • @Azhar 你在哪里添加了 onkeydown 事件。它不会被 WebBrowser 或 WebBrowser.Document 公开。我在父表单上试过了,它没有在按键上调用。
【解决方案2】:

您不能通过 JavaScript 禁用 F5(或其他浏览器快捷键)。

WebBrowser 控件的WebBrowserShortcutsEnabled 属性设置为false 应该可以完成您想要做的事情。

【讨论】:

  • 遇到了问题。它会禁用键盘快捷键,但也会禁用将打开 IE 的链接。
  • 处理WebBrowser.Navigating事件:private void WebBrowserNavigating(object sender, WebBrowserNavigatingEventArgs e) { if (e.Url.ToString() != "about:blank") { System.Diagnostics.Process.Start(e.Url.ToString()); e.Cancel=true; } }
  • 快速警告,这会禁用所有快捷键,所以没有 Ctrl-C/Ctrl-V 等...
  • 如果有人正在为缺少 Ctrl-C/Ctrl-V 而苦苦挣扎,我刚刚发布了一些示例代码来解决这个问题,你可以在这里找到它:blog.intninety.co.uk/2012/08/…希望这对其他人有帮助谁可能会被它困住!
  • 正如一些人所提到的,将 WebBrowserShortcutsEnabled 设置为 false 确实会阻止所有快捷方式工作,这远非理想。顺便说一句,rastating提供的链接不起作用!
猜你喜欢
  • 1970-01-01
  • 2010-12-02
  • 2023-03-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-31
  • 2018-08-22
  • 2013-03-21
相关资源
最近更新 更多