2016-01-26 9 views
5

私はあるプロセスから別のプロセスへ電子でデータを取得したいと思います。これを行う方法を理解できません。私は、IPCを試してみましたが、私はそれを使用する方法を見つけ出すことができます電子アプリケーションでBrowserWindowからDOMツリーを取得する方法は?

// 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. 

:私は、次のコードを持っています。どんな助けもありがとう。

ありがとうございました!

答えて

8

内容をログに記録する場合は、Electron's remote.processをレンダラーから直接直接メインプロセスstdoutに書き込むことができますが、メインプロセスIPCにコンテンツを送信する場合は、おそらく最良の方法ですファイル、ソケットなども使用します)。

ここでは、main.jsファイルからこのすべてを実行する方法の非常に簡単な例です(ただし、レンダラーコードに別のファイルを使用し、BrowserWindowの 'preload'オプションを使用する必要があります)。単に説明の目的のために)。

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'); 
+0

ipcRenderer.sendでは動作しませんでしたが、.sendSyncで動作します。ありがとう! –

関連する問題