【问题标题】:How to maximize every `window.open` call in Electron?如何最大化 Electron 中的每个“window.open”调用?
【发布时间】:2021-10-31 19:13:10
【问题描述】:
我知道我们可以使用以下代码来最大化主窗口:
const mainWindow = new BrowserWindow({...})
mainWindow.maximize()
但是从主窗口中调用window.open 呢?如何最大化它们?
使用new BrowserWindow({ fullscreen: true }) 不是一个选项,因为这会导致打开的窗口没有标题栏。
【问题讨论】:
标签:
javascript
html
electron
window.open
maximize-window
【解决方案1】:
你只需要拦截窗口的创建并在那里最大化它们(这也会影响通过点击带有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()),
)