我想用 electron 从一个进程获取数据到另一个进程,但我不知道该怎么做。我有以下代码:
// I create a new browser window to load url
var win = new BrowserWindow({ width: 800, height: 600, show: false });
win.loadURL('chrome://gpu');
win.webContents.on('dom-ready', function() {
console.log("dom is ready");
});
// Here I want to get content of the loaded page and log it.
我试过 ipc,但我知道如何使用它。
最佳答案
如果您只想记录内容,可以使用Electron's remote.process
将它们直接写入主进程标准输出。直接从渲染器发送内容,但如果您想将内容发送到主进程,IPC 可能是最好的方式(您也可以使用文件、套接字等)。
这是一个非常简单的示例,说明如何从 main.js 文件执行所有这些操作(但我建议为渲染器代码使用一个单独的文件,并使用 BrowserWindow 的“预加载”选项要求它,这只是用于说明目的)。
var electron = require('electron');
var ipc = electron.ipcMain;
var BrowserWindow = electron.BrowserWindow;
var win = new BrowserWindow({ width: 800, height: 600, show: false });
win.webContents.on('dom-ready', () => {
win.webContents.executeJavaScript(`
require('electron').ipcRenderer.send('gpu', document.body.innerHTML);
`);
});
ipc.on('gpu', (_, gpu) => {
console.log(gpu)
})
win.loadURL('chrome://gpu');
关于javascript - 如何从 Electron 应用程序中的 BrowserWindow 获取 DOM 树?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35019166/