在我的程序的主窗口中,我有一个按钮,如果单击该按钮,则会创建一个新的附加窗口。当这个新窗口完成加载时,我想向ipcRenderer
; 但是,到目前为止ipcRenderer
,即使窗口创建成功,我也无法接收消息。
以下是 中的代码片段main.js
:
const { ipcMain } = require('electron');
ipcMain.handle('open-window', () => {
const newWindow = createWindow();
newWindow.on('did-finish-load', () => {
newWindow.webContents.send('opened-window');
});
});
请注意,这createWindow
是一个创建并返回浏览器窗口的函数。
这是代码片段preload.js
:
const { ipcRenderer } = require('electron');
window.addEventListener('DOMContentLoaded', () => {
document.getElementById('openWindow').addEventListener('click', () => {
ipcRenderer.invoke('open-window');
});
});
ipcRenderer.on('opened-window', () => {
console.log('received message!')
})
如您所见,我希望在received message!
新窗口完成加载后在控制台中接收字符串;但是,这并没有发生。我究竟做错了什么?