[英]Get DOM javascript variable from Node.JS in 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());
错误提示:未定义文档
这取决于你如何加载你的JavaScript,你需要把你的脚本的HTML的前 </body>
结束标记,或在window.onload
,当你调用JavaScript函数,如文档对象不会自动创建document.getElementById
。
我相信您正在寻找进程间通信 。 尽管您还可以将remote用于某些事情(它基本上是ipcMain和ipcRenderer的简化包装),但我没有看到设置全局变量的方法(而且我自己也没有使用过)。 相反,我们可以直接使用ipcMain和ipcRenderer 。
例如,您可以在主过程中具有以下侦听器:
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对其进行克隆 ,然后再传递给它,或者使用另一种克隆方法将其制成JSON对象(或者只是以更简单的形式发送所需的内容)。 或者,将内容存储在渲染器上,并通过IPC交流何时执行操作。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.