簡體   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