Javascript 异步代码完成执行后激发的electron webview的自定义事件

Javascript 异步代码完成执行后激发的electron webview的自定义事件,javascript,electron,Javascript,Electron,因此,正如标题所示,我正在Electron中加载一个webview,我需要它在该webview中的异步代码执行完毕后触发一个事件。现在,同步代码执行完毕后,dom ready事件将立即触发,因此我无法使用它。有没有其他我可以尝试的活动(据我所知,没有-我已经检查过了)?或者,是否有任何方法可以设置脚本执行后可以触发的自定义事件。感谢您的帮助 附言:我不能在这里发布代码,我认为这个问题是不言自明的。您可以使用Electron的进程间通信(IPC)来实现这一点 首先,您需要从webview(渲染器进

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


附言:我不能在这里发布代码,我认为这个问题是不言自明的。

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

首先,您需要从webview(渲染器进程)向主进程发送一条消息,如下所示:

var-ipcrender=require('electron')。ipcrender;
发送('async-code-finished');
然后在主进程中接收消息:

var-ipcMain=require('electron').ipcMain;
ipcMain.on('async-code-finished',函数(){
//在这里做你想做的。
});
如果不起作用,请检查您的
浏览器窗口
webPreferences
设置:

  • nodeIntegration
    应设置为
    true
  • contextIsolation
    应设置为
    false
像这样:

新建浏览器窗口({
网络首选项:{
无融合:没错,
上下文隔离:false
},
});
阅读更多:


异步代码执行完毕后,您能在webview中运行一些代码吗?@Joshua您能告诉我更多您在这里的意思吗?“在webview中运行一些代码”是什么意思??我可以运行代码,比如说异步代码的
then()
部分,或者我可以在异步代码完成执行后调用回调。谢谢您的回复。最后我也做了同样的事情,唯一的区别是,我在webview中添加了一个事件侦听器,并从那里访问了事件
ipc消息。谢谢你的回答。