Javascript 两个窗口之间的消息不';行不通

Javascript 两个窗口之间的消息不';行不通,javascript,node.js,electron,Javascript,Node.js,Electron,我试图将一条消息从一个模态发送回浏览器窗口,以便用模态返回的数据更新它 模式有一个表,当您单击一行时,行id通过IPC渲染器消息发送,但消息似乎没有到达,因为控制台中没有记录任何内容 我做错了什么 浏览器窗口(渲染器) const { remote } = require('electron'); const ipcRenderer = require("electron").ipcRenderer; function openModal() { let win = new remot

我试图将一条消息从一个模态发送回浏览器窗口,以便用模态返回的数据更新它

模式有一个表,当您单击一行时,行id通过IPC渲染器消息发送,但消息似乎没有到达,因为控制台中没有记录任何内容

我做错了什么

浏览器窗口(渲染器)

const { remote } = require('electron');
const ipcRenderer = require("electron").ipcRenderer;

function openModal() {
    let win = new remote.BrowserWindow({
        parent: remote.getCurrentWindow(),
        modal: true
    })

    win.webContents.openDevTools();
    var theUrl = 'file://' + __dirname + '/modal.html'

    win.loadURL(theUrl);
}

// Open the modal on button click
document.getElementById("button-search-open")
    .addEventListener("click", () => {
        openModal();
    })

// Log the data received from the modal message
ipcRenderer.on('set-row-active-id', (e, args) => {
    console.log(e, args); // Nothing is logged!
 })
模态(渲染器)

 var ipcRenderer = require("electron").ipcRenderer;

// Add event listeners to all table rows
document.querySelectorAll('table tr')
    .forEach(el => el.addEventListener("click", (e) => { rowClickHandler(e) }));

// Send the row id back to the broserwindow on row click
function rowClickHandler(e) {
    let rowId = e.target.parentElement.dataset.id
    ipcRenderer.send('set-row-active-id', rowId);
}
用于向主进程发送消息。您需要的是通过向特定的WebContent发送消息

因为模态窗口应该发送给其父窗口,所以可以使用


也许可以帮你点燃。。。成功了!我没有这样想过,谢谢你让它点击。嘿,你介意看一下吗
// (Modal - Renderer)
const { remote, ipcRenderer } = require('electron')
// ...
function rowClickHandler() {
  let rowId = e.target.parentElement.dataset.id
  remote.getCurrentWindow().getParentWindow().send('set-row-active-id', rowId)
}