Javascript 电子参考误差

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)时,我得到了引用错误。我似乎找不到解决这个问题的办法,尽管这似乎是一个非常简单的问题 因此,我执行此函数以创建一个新的

我是一个彻头彻尾的noob,进入javascript的第一个月,在Electron中创建了一个简单的Win应用程序。我需要将index.html/index.js中的信息发送到session.html。在从主进程/菜单创建session.html时,我已经通过IPC成功地完成了这项工作。但是现在,当我从index.js创建新的BrowserWindow(session.html)时,我得到了引用错误。我似乎找不到解决这个问题的办法,尽管这似乎是一个非常简单的问题

因此,我执行此函数以创建一个新的BrowserWindow:

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)
})