Javascript 电子参考误差
我是一个彻头彻尾的noob,进入javascript的第一个月,在Electron中创建了一个简单的Win应用程序。我需要将index.html/index.js中的信息发送到session.html。在从主进程/菜单创建session.html时,我已经通过IPC成功地完成了这项工作。但是现在,当我从index.js创建新的BrowserWindow(session.html)时,我得到了引用错误。我似乎找不到解决这个问题的办法,尽管这似乎是一个非常简单的问题 因此,我执行此函数以创建一个新的BrowserWindow:Javascript 电子参考误差,javascript,electron,ipc,Javascript,Electron,Ipc,我是一个彻头彻尾的noob,进入javascript的第一个月,在Electron中创建了一个简单的Win应用程序。我需要将index.html/index.js中的信息发送到session.html。在从主进程/菜单创建session.html时,我已经通过IPC成功地完成了这项工作。但是现在,当我从index.js创建新的BrowserWindow(session.html)时,我得到了引用错误。我似乎找不到解决这个问题的办法,尽管这似乎是一个非常简单的问题 因此,我执行此函数以创建一个新的
addWin = function() {
addWindow = new BrowserWindow({
show: false,
width: 800,
height: 600,
title: 'Process'
})
addWindow.loadURL(url.format({
pathname: path.join(__dirname, 'session.html'),
protocol: 'file:',
slashes: true
}))
addWindow.once('ready-to-show', () => {
addWindow.show()
})
addWindow.on('close', function() {
addWindow = null
})
}
同时通过IPC从提交的表格中发送信息:
ipcRenderer.send('process:add', minutes)
主进程(Main.js)理解我的消息并在控制台中显示它:
但是,由于它没有“addWindow”的引用,session.html无法获取消息,并且应用程序显示“addWindow”的引用错误:
所以问题很简单-我如何让main.js看到index.js中定义的“addWindow”是什么意思
另外,我试图在main.js中定义“addWin”函数,并将其设置为全局,同时使用“remote.getGlobal”在索引上执行它。该函数本身工作正常,但主进程仍然没有看到“addWindow”在“global.addWin”中“功能。您可以使用
事件发送方
访问发送事件的网络内容
ipcMain.on('process:add', (event, minutes) => {
event.sender.send('#minutes', minutes)
})
阅读文档部分
顺便说一句,你可以简单地按照你想要的方式构造你的应用程序/代码。如果一个函数应该知道一个变量,它们通常必须共享相同的作用域。
因此,您可以简单地将ipcMain
监听器和BrowserWindow
初始化放在同一个js文件中。请您在这里发布一个粘贴箱或带有index.js'、
main.js、
index.html`以及session.html
的东西来帮助我们理解?
ipcRenderer.on('process:add', function(e, minutes) {
var minutesText = document.createTextNode(minutes);
li.appendChild(minutesText);
ul.appendChild(li);
});
ipcMain.on('process:add', (event, minutes) => {
event.sender.send('#minutes', minutes)
})