如何最大化 Electron 中的每个 `window.open` 调用?

How to maximize every `window.open` call in Electron?

我知道我们可以使用以下代码来最大化主 window:

const mainWindow = new BrowserWindow({...})

mainWindow.maximize()

但是主 window 中的 window.open 调用呢?如何最大化它们?

不能使用 new BrowserWindow({ fullscreen: true }),因为那样会导致打开的 windows 没有标题栏。

您只需要拦截 window 创建并在那里最大化它们(这也会影响通过单击 target="_blank" 超链接打开的 windows)

假设您使用的是 Electron 12 或更高版本:

mainWindow.webContents.on('did-create-window', win => win.maximize())

至于您评论中问题的第二部分,您需要在 window 准备好显示之前将其隐藏:

mainWindow.webContents.setWindowOpenHandler(() => ({
  action: 'allow',
  overrideBrowserWindowOptions: { show: false },
}))

mainWindow.webContents.on('did-create-window', win =>
  win.once('ready-to-show', () => win.maximize()),
)