如何在Electron应用程序中创建并显示一个新的子窗口?
时间: 2024-10-20 18:03:17 浏览: 42
在 Electron 应用程序中,创建并显示一个新的子窗口通常涉及到以下几个步骤:
1. 导入所需的模块:
```javascript
const { app, BrowserWindow } = require('electron')
```
2. 创建一个新的 `BrowserWindow` 实例:
```javascript
let childWindow = new BrowserWindow({ // 初始化一个新的窗口
width: 800,
height: 600,
parent: null, // 默认为当前主窗口,若设为null则创建独立窗口
modal: false, // 是否模态窗口,默认false
frame: true, // 是否带边框,默认true
});
```
3. 设置窗口的行为和加载内容:
```javascript
childWindow.loadFile('path/to/your/html/file.html') // 或者 loadURL('http://example.com')
```
4. 显示子窗口:
```javascript
childWindow.show()
```
5. 关闭子窗口时,如果需要的话:
```javascript
childWindow.on('close', () => {
childWindow.close()
})
```
完整的例子可能如下所示:
```javascript
app.whenReady().then(() => {
// 主窗口...
function createChildWindow() {
const childWindow = new BrowserWindow({
width: 800,
height: 600,
show: false, // 初始时不显示,只在需要时手动调用show()
});
childWindow.loadFile('/path/to/child_window.html');
childWindow.once('ready-to-show', () => {
childWindow.show();
});
childWindow.webContents.on('did-finish-load', () => {
childWindow.setTitle('子窗口标题');
});
childWindow.on('close', () => {
childWindow.close();
});
}
createChildWindow();
});
```
在这个例子中,当你调用 `createChildWindow` 函数时,一个新的子窗口会被创建并隐藏,直到其完成加载并准备好显示时才显示。
阅读全文