我想通过电子从一个过程获取数据到另一个过程,我无法弄清楚如何做到这一点。我有以下代码:
// 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,但我可以弄清楚如何使用它。任何帮助将不胜感激。
感谢!!!
答案 0 :(得分:8)
如果您只想记录内容,可以直接使用Electron's remote.process
直接从渲染器将它们写入主进程标准输出,但是如果要将内容发送到主进程,IPC可能是最好的方法(你也可以使用文件,套接字等。)。
以下是一个非常快速的示例,介绍如何从main.js文件中完成所有操作(但我建议使用单独的文件作为Renderer代码,并使用BrowserWindow' s&# 39; 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');
答案 1 :(得分:-1)
对我有用,请尝试:
document.getElementsByTagName('input')[0].files[0].path
在我的代码中:
document.getElementById("dst-btn").addEventListener("click", function(){
console.log('dst');
console.log(document.getElementsByTagName('input')[0].files[0].path);
});