如何在Github电子原子中禁用或使浏览器窗口处于非活动状态

How to disable or make inactive Browser Window in Github Electron Atom

本文关键字:浏览器 窗口 活动状态 于非 Github      更新时间:2023-09-26

我的电子应用程序中有2个BrowserWindow(mainWindow,secondaryWindow)实例。第一个窗口(主窗口)中有一个按钮,单击该按钮将打开另一个窗口(辅助窗口)。

现在我的问题是,在辅助窗口关闭之前,我不希望用户能够单击主窗口上的任何内容。

我能得到的最接近的是使用mainWindow.hide()。这完全隐藏了主窗口。我想要的是让用户在辅助窗口处于活动状态时仍然可以看到主窗口。但是,当辅助窗口处于活动状态时,主窗口应禁用/不活动。

任何建议???

您可以使用

父/子概念在子项打开时禁用父项:

let top = new BrowserWindow()
let child = new BrowserWindow({parent: top})

您还可以将概念扩展到完整的模式窗口,如下所示:

let child = new BrowserWindow({parent: top, modal: true, show: false})
child.loadURL('https://github.com')
child.once('ready-to-show', () => {
  child.show()
})

无法让 Habegger 的解决方案为我工作@Jens。由于我使用的是引导 + jquery 风格的应用程序,因此我想显示一个背景以防止交互,但仍然可以看到内容。这让用户直观地知道窗口已禁用输入。

...
mainWindow.webContents.executeJavaScript("$('<div class='"modal-backdrop'" style='"opacity:0.5 !important;'"></div>').appendTo(document.body);");
modal.on('close',function() {
  mainWindow.webContents.executeJavaScript("$('".modal-backdrop'").remove();");
});
modal.show();