gpt4 book ai didi

javascript - 从Electron中的Node.JS获取DOM JavaScript变量

转载 作者:行者123 更新时间:2023-12-03 12:36:23 27 4
gpt4 key购买 nike

就像标题所说的那样,我怎么能从 Electron 的main.js中的DOM中获取变量。

代码:

value.js:

var x = document.getElementById('x');

来自ELECTRON的main.js:
const {app, BrowserWindow, Menu} = require('electron')

require('./value.js') // include value.js
console.log(x.getValue());

错误提示:未定义文档

最佳答案

我相信您正在寻找进程间通信。尽管您还可以将remote用于某些事情(它基本上是ipcMain和ipcRenderer的简化包装器),但我没有找到设置全局变量的方法(而且我自己也没有使用过)。相反,我们可以直接使用ipcMainipcRenderer

例如,您可以在主过程中具有以下监听器:

let ipc = require('electron').ipcMain,
test = 0;

ipc.on('setTest', (event,arg)=>{
test = arg; // Beware of any possible user input!
event.returnValue = test; // Required for sendSync or it hangs forever! You can send back anything here.
});

ipc.on('getTest', (event,arg)=>{
event.returnValue = test;
});

在客户端,您可以使用类似以下内容的方法:
let ipc = require('electron').ipcRenderer;

ipc.sendSync('setTest', 1);
// and/or
ipc.sendSync('getTest');

编辑:由于DOM元素是奇怪的对象,您可能必须先使用jQuery对 clone进行传递,然后再使用它进行克隆,或者使用另一种克隆方法将其制成JSON对象(或者只是以更简单的形式发送所需内容)。或者,将内容存储在渲染器上,并通过IPC交流何时执行操作。

关于javascript - 从Electron中的Node.JS获取DOM JavaScript变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41842943/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com