Electron使用window.open如何通讯
时间: 2023-12-15 10:04:11 浏览: 134
在 Electron 中,可以通过两种方式在主进程和渲染进程之间进行通信:`ipcMain` 和 `ipcRenderer`。如果您想要在一个窗口中打开另一个窗口并在它们之间进行通信,可以使用以下步骤:
1. 在主窗口中使用 `BrowserWindow` 的 `webContents` 对象的 `executeJavaScript()` 方法打开新窗口,并将其返回的 `window` 对象存储在变量中:
```javascript
const newWindow = window.open('newWindow.html');
newWindow.addEventListener('load', () => {
newWindow.myWindowVar = 'Hello from main window!';
});
```
2. 在新窗口中,使用 `remote` 模块获取主进程的 `BrowserWindow` 对象,并将其 `webContents` 对象存储在变量中。然后,可以使用 `executeJavaScript()` 方法从主窗口中访问变量:
```javascript
const { remote } = require('electron');
const mainWindow = remote.BrowserWindow.getFocusedWindow();
const mainWebContents = mainWindow.webContents;
console.log(mainWebContents.executeJavaScript('myWindowVar'));
```
请注意,在第二步中,我们使用了 `remote` 模块来访问主进程中的对象,因为在渲染进程中不能直接访问主进程的对象。
阅读全文