Javascript 当父窗口在Electron中关闭时,防止子窗口关闭
我正在做一个电子应用程序。此应用程序可以打开一个新窗口(弹出窗口),并将其拖动到其他显示器上。这个窗口可以打开另一个窗口,依此类推。我需要用户能够关闭他不想要的窗口,但保持其他窗口打开 首先,我尝试了Javascript 当父窗口在Electron中关闭时,防止子窗口关闭,javascript,electron,Javascript,Electron,我正在做一个电子应用程序。此应用程序可以打开一个新窗口(弹出窗口),并将其拖动到其他显示器上。这个窗口可以打开另一个窗口,依此类推。我需要用户能够关闭他不想要的窗口,但保持其他窗口打开 首先,我尝试了window.open,但是当父窗口关闭时,子窗口就会关闭。我想这一定是因为var被垃圾回收了 其次,我尝试绑定到主进程中的新窗口事件。 这就是我所做的: let windows = []; function createNewWindow(){ let win = new BrowserWi
window.open
,但是当父窗口关闭时,子窗口就会关闭。我想这一定是因为var被垃圾回收了
其次,我尝试绑定到主进程中的新窗口
事件。
这就是我所做的:
let windows = [];
function createNewWindow(){
let win = new BrowserWindow(
{
width: 1600,
height: 900,
webPreferences: {
nodeIntegration: true
}
}
);
win.webContents.on('new-window', (event, url) => {
event.preventDefault()
let win = createNewWindow();
win.loadURL(url);
event.newGuest = win;
})
windows.push(win);
return win;
}
但当父对象关闭时,子对象将关闭。我检查了windows
var,但它正确地保留在主进程中,因此这不应该是GC问题
当主父窗口关闭时,如何打开一系列窗口(有或没有窗口。打开),而不关闭它们
编辑
由于我没有找到保持窗户打开的方法,我决定把窗户藏起来而不是关上。这就是我所做的:
win.on("close", (event) => {
if (win.hideInsteadOfClose == true) {
event.preventDefault();
win.hide();
}
});
win.on("close", (event) => {
if (win.hideInsteadOfClose == true) {
event.preventDefault();
win.hide();
}
});
其中,hideInsteadOfClose
是我为新创建的窗口提供的属性。这不是正确的方法,但它可以完成工作。请用正确的方式回答。由于我没有找到保持窗口打开的方法,我决定隐藏窗口而不是关闭它们。这就是我所做的:
win.on("close", (event) => {
if (win.hideInsteadOfClose == true) {
event.preventDefault();
win.hide();
}
});
win.on("close", (event) => {
if (win.hideInsteadOfClose == true) {
event.preventDefault();
win.hide();
}
});
其中,hideInsteadOfClose
是我为新创建的窗口提供的属性。这不是正确的方法,但它可以完成工作
请随意用正确的方式回答。我确信问题在于您让浏览器上下文启动新窗口的方式,而不是使用IPC线程与主线程通信。