Meg*_*jin 7 javascript node.js electron
假设我有两个进程:
进程 1 正在向进程 2 发送一个有效的 html 字符串:
ipcRenderer.send('open-window-from-string',
'<!DOCTYPE html>' + '<html>' + htmlElement.innerHTML + '</html>');
Run Code Online (Sandbox Code Playgroud)
进程 2(电子主进程)试图从该字符串打开一个新窗口:
ipc.on('open-window-from-string', (event, htmlString) => {
const windowFromString= BrowserWindow.fromWebContents(htmlString);
}
Run Code Online (Sandbox Code Playgroud)
我知道我可以将 html 保存为实际的 html 文件。这样,在使用时一切正常:
loadURL(`file://${__dirname}/windowFromString.html`);
Run Code Online (Sandbox Code Playgroud)
但是,这会导致不必要的读/写操作。
这就是为什么我试图从我的记忆中的 htmlString 加载一个新窗口。那么问题又来了: 是否可以从内存中的 html 字符串加载电子 webContents?
在此先感谢您的帮助。
问候, Megajin
sri*_*mak 10
在 Chrome 中,您可以通过使用 data: 协议导航 URL 来显示内联 html 页面,例如 data:text/html;charset=utf-8,<head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <title>MyYTitle</title> <style type="text/css"> </style></head> <body>Hello world from Lyon, FR</body>
它在 Electron 中的工作原理相同。你能试试用 开窗loadURL('data:text/html;charset=utf-8,<YOUR HTML/>');吗?
| 归档时间: |
|
| 查看次数: |
5429 次 |
| 最近记录: |