电子:使用与index.js不同的javascript调用函数

时间:2019-01-08 07:53:17

标签: javascript electron

我想在焦点对准窗口时在second_script.js中调用一个函数,该函数是从我的main.js(index.js)文件中检测到的。 second_script.js也在另一个HTML文件中使用。

main.js

  win = new BrowserWindow({
    width: 1000,
    height: 600,
    resizable: false,
    frame: true
  })

  win.on('focus', function () {
    call_that_function();
  });

second_script.js

此文件位于scripts/second_script.js中,并在其他HTML文件中使用。

function call_that_function() {
    //code
}

如何弥合这种差距,以便只要我的窗口处于焦点位置,main.js就会调用该函数?

1 个答案:

答案 0 :(得分:1)

电子基于node.js

在您的second_script.js中导出该函数,然后导入/请求它并在main.js中调用它。

在Electron内部进行交流的另一种方法是使用ipcMain

const { ipcMain } = require('electron');

second_script.js内监视以下消息:

ipcMain.on('CHANNEL_NAME', (event, arg) => {
  console.log('message received', event, args);
  // call your func here
);

main.js内发送如下消息:

win.on('focus', function () {
  ipcRenderer.send('CHANNEL_NAME', 'ping');
});