我有一个渲染器进程,我们称之为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控制窗口是否关闭。
答案 0 :(得分:3)
以下是阻止关闭的方法:
经过大量试验,我想出了一个解决方案: reg currentlyLighting = 0;
reg oldButton = 0;
reg buttonValue = 0;
在文档中找到:event-close和destroy
答案 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