在我的程式的主視窗中,我有一個按鈕,如果單擊該按鈕,則會創建一個新的附加視窗。當這個新視窗完成加載時,我想向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!在新視窗完成加載后在控制臺中收到字串;然而,這并沒有發生。我究竟做錯了什么?
uj5u.com熱心網友回復:
您正在發送"opened-window"到您創建的新視窗,而不是按下按鈕的原始視窗。
newWindow.webContents.send('opened-window')
而不是newWindow,您需要參考帶有按鈕和opened-window處理程式的視窗
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/393485.html
標籤:javascript 节点.js 电子 ipcrenderer 主机
