如何在 Electron 中禁用下一个/上一个键(通过鼠标)?

Rom*_*iez 3 javascript navigation mouse electron disable

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

插图

pus*_*kin 8

似乎没有执行此操作的标准方法。

与按下鼠标上的后退/前进按钮相关的AppCommand将触发一个app-command事件。BrowserWindow

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

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

不幸的是,该解决方案似乎不起作用,因为当按下后退/前进按钮时可能不会触发该事件

虽然这是一个问题,但您可以拦截该mouseup事件并取消后退和前进按钮的事件:

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