无法设置预加载脚本中使用的 id 的 null(设置"隐藏")的属性



我正在使用带有预加载脚本的Electron应用程序,并使用document.getElementById将id转换为vars,然后在函数中使用该变量。但是因为它是一个预加载脚本,所以没有设置一些变量,因为索引文件没有完全加载(我想(。我尝试过使用window.onload函数来等待窗口完全加载,但这没有帮助。我还能做些什么来正确设置变量吗?

Preload脚本无法访问页面的DOM,因为它们是在窗口完全加载(因此得名(之前执行的,并且只提供严格沙盒渲染器进程(从窗口加载的HTML加载的任何JS(和不受限制的主进程(启动应用程序的进程(之间的接口函数。

因此,任何应该修改页面(DOM(的内容都必须出现在正确的脚本中,即呈现器自己的JavaScript中。预加载脚本只应加载Electron API,并在需要时将其暴露给渲染器(一个接一个地将风险向量降至最低(。我建议阅读Electron的预加载脚本教程。

总之:每当您需要访问Electron API或需要与主进程通信时,都会加载API并为preload.js中的通信创建函数,通过contextBridge将它们暴露给渲染器进程。当您需要使用API或需要与主进程通信时,可以从渲染器进程调用这些函数。

此外,如果您在理解Electron的流程模型(主流程和渲染器流程(时遇到困难,请查看Electron流程架构文档。

最新更新