javascript - 在异步代码完成执行后触发的电子 webview 的自定义事件
问题描述
所以正如标题所示,我webview
在 Electron 中加载了一个,我需要它在这个 webview 中的异步代码完成执行后触发一个事件。现在,dom-ready
同步代码完成执行后立即触发该事件,因此我无法使用它。还有其他我可以尝试的活动吗(据我所知,没有 - 我已经检查过了)?或者,有什么方法可以设置脚本执行后可以触发的自定义事件。任何帮助表示赞赏。
PS:我不能在这里发布代码,我认为这个问题是不言自明的。
解决方案
您可以使用 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
},
});
阅读更多:
推荐阅读
- jenkins - Jenkins podTemplate 禁用默认回声
- python - 使用 Xpath 获取在属性之一中包含特定单词的 XML 节点
- angularjs - 如何在 angularJS 的 pdf 页面的顶部和底部添加边距?
- ios - 如何在 Swift AppDelegate 之外获取 Firebase FCM 令牌
- html - 为什么在关闭 div 标签后应用 hr 后 hr 与 div 元素在同一行
- python - 将不包含表格的 HTML 转换为 pandas Dataframe
- excel - 如何在状态栏中为 Microsoft Excel 365 MSO 64 位中的总和添加逗号分隔符?
- c++ - Qt 添加 libQGLViewer
- grep - 如何使用 grep 删除多列(仅第一列)?
- python - 在 Python 中查找两个字符之间的字符