无法阻止电子窗口关闭

时间:2017-01-06 10:39:59

标签: javascript electron

我有一个渲染器进程,我们称之为RP。 单击按钮,将打开一个浏览器窗口(BW)。

现在当BW点击关闭时,我想在RP中捕捉到这个关闭事件并阻止它。

我遇到的是,在RP中调用close事件之前窗口已关闭。

代码:

bw.on("close", (e: Electron.Event) => hideWindow(e));
let hideWindow = (e: Electron.Event) => {
    e.preventDefault();
    bw.hide();
    return false;
  }

我做错了什么?

我知道,在bw我可以使用beforeunload,这有效。但我希望RP控制窗口是否关闭。

2 个答案:

答案 0 :(得分:3)

以下是阻止关闭的方法:

经过大量试验,我想出了一个解决方案:

 reg currentlyLighting = 0;
 reg oldButton = 0;
 reg buttonValue = 0;

在文档中找到:event-closedestroy

答案 1 :(得分:1)

这是不可能的,因为打开浏览器窗口的进程是渲染器进程,它是通过electron.remote调用的,因此处理为异步。因此,在处理关闭事件之前关闭窗口。 如果打开浏览器窗口的进程是主进程,那就没关系了。

显示案例:https://github.com/CThuleHansen/windowHide 以下是对该问题的更长时间的讨论:https://discuss.atom.io/t/close-event-for-window-being-fired-after-window-has-been-closed/37863/4