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

时间:2018-07-05 09:17:18

标签: javascript electron

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

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

但是,不幸的是,这会导致完全阻止所有帧刷新,即使对于其他浏览器也是如此。

如何仅为我创建的窗口注册此类快捷方式?

替代: 我猜想,我们可以使用 Mousetrap 作为此类操作的选项,但我想知道-是否有某种内置方法用于此类操作?

1 个答案:

答案 0 :(得分:2)

这是防止刷新窗口的最合适方法。其他方法不能阻止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;
    });