繁体   English   中英

如何从电子应用程序中的 BrowserWindow 获取 DOM 树?

[英]How to get DOM tree from BrowserWindow in electron app?

我想在电子中从一个过程到另一个过程获取数据,但我不知道如何做到这一点。 我有以下代码:

// 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 的remote.process直接从 Renderer 将它们直接写入 Main process stdout,但如果您想将内容发送到 Main process IPC 可能是最好的方法(您也可以使用文件、套接字等)。

这是一个非常快速的示例,说明如何从 main.js 文件中执行所有操作(但我建议为 Renderer 代码使用单独的文件,并使用 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');

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM