我一直在尝试不同的解决方案,但都无济于事,我们的Electron应用程序重构到版本26。我们的旧版本的Electron是使用预加载脚本来设置窗口属性(功能)
window.testFunction = (channel, params) => {
ipcRenderer.send(channel, params);
}
字符串
因此我们的嵌入式网站可以使用这些windows属性与Electron通信。
有了这个最新版本的Electron,据说在预加载脚本中使用contextBridge,以便在渲染器和main之间进行通信。我有contextIsolation = true
和nodeIntegration = false
。有了这个,在预加载脚本中设置窗口属性不再起作用。我能够在main中使用executeJavascript()
函数设置窗口属性(在渲染器dom-ready侦听器中显示),但在嵌入式网站中,似乎在DOM准备好之前就触发了该窗口属性函数。
有没有一种方法可以在渲染器执行之前预加载窗口属性?
1条答案
按热度按时间kuarbcqp1#
正如here所述,将全局变量公开到窗口对象中的新方法是在预加载脚本中使用
contextBridge
API。在你的例子中,preload.js会包含这样的内容:
字符串
然后你应该可以在渲染器中调用
window.testFunction(channel, params)
。