从Electronsubprocess访问DOM树

我在Windows 10上使用Electron(v1.2.2),我的一个项目有一个很大的问题:

我有一个脚本,进入渲染过程,并创buildsubprocess运行一些特殊的代码。 我需要运行在subprocess内的代码来访问DOM。 当创build进程(使用child_process.fork())时,我使用内置IPC通道发送一些信息,例如时间戳,有关将在subprocess内部运行的脚本的一些信息。

但是当我尝试发送一个类的实例时,它根本不起作用:

//main.js const child_process = require('child_process'); const child = child_process.fork('child.js'); child.send({ready: { version: '0.0.1', dom: document }}); // child.js process.on('message', (m) => { typeof m.dom.body.appendChild; // ReferenceError }); 

我想这是IPC通信的限制,只能传输一些特定的数据,但我知道可以使用IPC通道发送服务器或套接字实例,所以我不明白为什么传输文档是不可能的。

所以我正在寻找一种方法来访问subprocess的DOM,但我没有find任何解决scheme。 subprocess内部的代码需要在DOM上做很多操作,不能用IPC通信来访问,否则性能会太慢。

所以,我的问题是:有什么办法从subprocess访问DOM?

在讨论电子问题页面之后,似乎这个问题是不可解决的。 没有办法访问到一个subprocess的DOM,因为电子(如nw.js)不是为此devise的。

更多信息请访问: https : //github.com/electron/electron/issues/7057

编辑:最后,我发现另一种方法来解决我的问题,通过使用webview标记,允许运行与Node.jsfunction的HTML页面,并始终到一个新的过程。 更多信息在这里