在异步代码完成执行后触发的电子 webview 的自定义事件

Custom event for electron webview that fires after asynchronous code has finished executing

正如标题所示,我正在 Electron 中加载一个 webview,我需要它在 此 webview 中的异步代码执行完成后触发一个事件.现在,dom-ready 事件在同步代码执行完毕后立即触发,因此我无法使用它。有没有我可以尝试的其他事件(据我所知,没有 - 我已经检查过)?或者,有什么方法可以设置可以在脚本执行后触发的自定义事件。感谢任何帮助。

P.S:我不能post这里的代码,我认为问题是self-explanatory。

您可以使用 Electron 的进程间通信 (IPC) 来实现这一点。

首先你需要像这样从 webview(渲染进程)向主进程发送消息:

var ipcRenderer = require('electron').ipcRenderer;
ipcRenderer.send('async-code-finished');

然后在您的主进程中接收消息:

var ipcMain = require('electron').ipcMain;
ipcMain.on('async-code-finished', function () {
    // Do what you want here.
});

如果这不起作用,请检查您的 BrowserWindow webPreferences 设置:

  • nodeIntegration 应设置为 true.
  • contextIsolation 应设置为 false.

像这样:

new BrowserWindow({
    webPreferences:  {
        nodeIntegration:  true,
        contextIsolation: false
    },
});

阅读更多: