繁体   English   中英

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

[英]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的简化包装),但我没有看到设置全局变量的方法(而且我自己也没有使用过)。 相反,我们可以直接使用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对其进行克隆 ,然后再传递给它,或者使用另一种克隆方法将其制成JSON对象(或者只是以更简单的形式发送所需的内容)。 或者,将内容存储在渲染器上,并通过IPC交流何时执行操作。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM