首页 > 解决方案 > 如何最大化 Electron 中的每个“window.open”调用?

问题描述

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

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

mainWindow.maximize()

但是window.open来自主窗口的调用呢?如何最大化它们?

使用new BrowserWindow({ fullscreen: true })不是一个选项,因为这会导致打开的窗口没有标题栏。

标签: javascripthtmlelectronwindow.openmaximize-window

解决方案


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

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

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

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

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

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

推荐阅读