将 HTML 片段加载到 Electron 中



我正在尝试开发一个支持基本插件架构的Electron应用程序。main.js过程加载一个基本上为空的"欢迎"页面,除了标题的某种标题部分,其中包含一个列出可用插件的下拉菜单。

每个插件都有自己的renderer.js文件、配置数据等。它还提供了在div#plugin-container内显示的必要 HTML。我希望让渲染器进程将 HTML 片段加载到上述div内的现有网页中。

我知道win.loadURL()仅适用于main.js,它会加载一个 HTML 来填充整个窗口。我希望将片段加载到现有页面中。jQuery具有$('div#plugin-container').load()方法,可以满足我的需要,但据我所知,它仅从服务器加载HTML。我想从Electron应用程序中加载它。

有什么想法吗?

披露:我之前在 Atom 讨论板上发布了这条消息,但希望得到 SO 社区更好的回应。

无论您以何种方式访问 HTML,如果您将其解析为字符串,您始终可以在页面中呈现它。如果要从文件中读取,可以执行以下操作:

const fs = require('fs')
fs.readFile('path/to/thehtml.html', (err, data) => {
document.getElementById('some-element').innerHTML = data
})

如果你想让用户选择文件,你应该使用Electron的dialogAPI,它允许你通过一个对话框提示用户选择一个文件。或者你可以有一个输入,他们可以在其中输入文本并从那里阅读。

最新更新