【问题标题】:How to disable next/previous key ( from mouse ) in Electron?如何在 Electron 中禁用下一个/上一个键(来自鼠标)?
【发布时间】:2021-02-18 10:19:09
【问题描述】:

我有一个 Electron 应用程序,有不同的页面。我的应用程序的一些按钮让用户在这些页面之间导航。但用户也可以使用鼠标侧面的键导航到上一页/下一页。请问如何禁用这些键?

Illustration

【问题讨论】:

  • 我不知道这样做的标准方法。有一个app-command 事件会在您使用鼠标按钮时触发,但我不相信您可以取消该事件。从一些测试来看,它甚至看起来不像是触发鼠标按钮的事件。你能在你的页面中添加一个mousedown 处理程序并取消导航吗?
  • 谢谢!这是 mouseup 事件而不是 mousedown,但效果很好,因为我在事件中按下了按钮(3 = 上一个和 4 = 下一个)。
  • 很高兴听到!我发布了官方答案

标签: javascript navigation electron mouse disable


【解决方案1】:

似乎没有这样做的标准方法。

BrowserWindow 上有一个app-command 事件,该事件将针对与按下鼠标上的后退/前进按钮相关的AppCommands 触发。

mainWindow.on('app-command', (e, cmd) => {
  if (cmd === 'browser-backward' || cmd === 'browser-forward') {
    // ...
  }
})

现在该事件不可取消,但理论上,您可以添加 will-navigate 事件并取消后续导航(或者在取消所有导航的情况下向后执行,除非您单击按钮)。

不幸的是,该解决方案似乎不起作用,因为大概是由于this 而按下后退/前进按钮时没有触发该事件。

虽然这是个问题,但您可以拦截 mouseup 事件并取消它,以便向后和转发 buttons

window.addEventListener("mouseup", (e) => {
   if (e.button === 3 || e.button === 4)
      e.preventDefault();
});

【讨论】:

    猜你喜欢
    • 2013-11-15
    • 1970-01-01
    • 2012-07-02
    • 1970-01-01
    • 2021-04-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多