我目前正在用electronicjs编写应用程序。我正在尝试使用window.webContents.send()从主进程向辅助窗口发送事件。但是,似乎没有使用以下代码发送事件:
main.js
newTaskWindow = new BrowserWindow({
webPreferences: {nodeIntegration: true},
resizable: false,
height: 480,
width: 600,
frame: false,
alwaysOnTop: true,
show: false
});
//Load html into window
newTaskWindow.loadURL(url.format({
pathname: path.join(__dirname, "newTaskWindow.html"),
protocol: "file",
slashes: true
}));
//Waiting for window to load
newTaskWindow.webContents.on('did-finish-load', () => {
newTaskWindow.webContents.send("change-new-task-window-title", title);
});
newTaskWindow.js
ipcRenderer.on("change-new-task-window-title", (event, title) => {
$(".__title-main").html(title);
});
您可以看到,尽管等待窗口加载,但事件仍未发送。
我尝试了所有发现的事件,以查看窗口是否准备就绪: 无论是否放置.webContents,我都尝试过使用“ dom-ready”,“ ready-to-show”和“ ready-to-show”。
但是,当我用setTimeout等待一段时间时会发送事件,但是这种解决方案确实感觉有些笨拙。我想知道我是否做错了什么,因为我在互联网上找到的所有示例都不需要setTimeout。
谢谢。