Electron.js防止刷新已创建的窗口

ni65a41a  于 2023-09-28  发布在  Electron
关注(0)|答案(2)|浏览(270)

我正试图禁用Cmd+R或F5刷新我的电子应用程序,如下所示:

globalShortcut.register('CommandOrControl+R', () => false);
  globalShortcut.register('F5', () => false);

但是,不幸的是,它会导致完全阻止所有帧的刷新,即使是其他浏览器。
我怎样才能只为我创建的窗口注册这样的快捷方式?

**备选:我想,我们可以使用Mousetrap**作为这样的操作的选项,但我想知道-是否有任何内置的方法进行这样的操作?

jgzswidk

jgzswidk1#

这是防止窗口刷新的最合适的方法。其他方法不会阻止window.reload()调用。
ev对象保存了关于什么触发了卸载事件的信息,它可以用来以任何你希望的方式定制事件的结果。

window.addEventListener('beforeunload', (ev) => {
      // Setting any value other than undefined here will prevent the window
      // from closing or reloading
      ev.returnValue = true;
    });
k3fezbri

k3fezbri2#

我使用此代码和工作只与键盘

win.webContents.on('before-input-event', (event, input) => {
    if (input.control && input.key.toLowerCase() === 'r') {
        event.preventDefault()
    }
})

相关问题