Loi*_*nen 8 javascript node.js electron
我一直在尝试将小型网络应用程序转换为电子应用程序。它工作得很好,除了我需要将一堆文件(.html)加载到主 DOM 中。在网络应用程序中,我刚刚使用$.get,但是我如何在电子中做到这一点?我尝试查看 DOC,但除了 IPC 管道之外,我找不到一种简单的方法来做到这一点(而且我不太明白)。
有人能指出我正确的方向吗?
编辑
我在这里澄清一下。我有一个启动 BrowserWindow 的主进程
mainWindow = new BrowserWindow({width: 800, height: 600})
Run Code Online (Sandbox Code Playgroud)
然后,在js通过<script>标签导入的文件中,我想在对话框中加载并附加一些文件:
$('.dialog').load('pages/hello.html', {})
Run Code Online (Sandbox Code Playgroud)
亲切的问候
在 Electron 中你可以这样做fs.readFile
所以 :
const fs = require('fs');
const { promisify } = require('util');
const path = require('path');
const readFile = promisify(fs.readFile);
async function loadHTML(html){
const render = await readFile(path.join(__dirname, html), 'utf-8');
const parser = new DOMParser();
const childrenArray = parser.parseFromString(render,'text/html').querySelector('body').childNodes;
const frag = document.createDocumentFragment();
childrenArray.forEach(item => {
frag.appendChild(item);
});
document.body.appendChild(frag);
};
loadHTML('/path/to/my/index.html');
Run Code Online (Sandbox Code Playgroud)
如果我没有打字错误,它应该可以工作。它将文件作为字符串读取,因此您需要使用 DOMParser 解析该字符串。
| 归档时间: |
|
| 查看次数: |
20001 次 |
| 最近记录: |