Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/35.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 从子进程访问DOM树_Javascript_Node.js_Dom_Ipc_Electron - Fatal编程技术网

Javascript 从子进程访问DOM树

Javascript 从子进程访问DOM树,javascript,node.js,dom,ipc,electron,Javascript,Node.js,Dom,Ipc,Electron,我在Windows 10上使用Electron(v1.2.2),我的一个项目有一个大问题: 我有一个脚本,它可以转换为渲染器进程,并创建子进程来运行一些特殊代码。我需要在子进程中运行代码来访问DOM。 创建进程时(使用child_process.fork()),我使用内置的IPC通道发送一些信息,例如时间戳,一些关于将在子进程内运行的脚本的信息 但当我尝试发送类的实例时,它根本不起作用: //main.js const child_process = require('child_process

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

我有一个脚本,它可以转换为渲染器进程,并创建子进程来运行一些特殊代码。我需要在子进程中运行代码来访问DOM。 创建进程时(使用child_process.fork()),我使用内置的IPC通道发送一些信息,例如时间戳,一些关于将在子进程内运行的脚本的信息

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

//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通道发送服务器或套接字实例,所以我不理解为什么不能传输文档

因此,我正在寻找一种从子进程访问DOM的方法,但没有找到任何解决方案。 子进程中的代码需要对DOM进行大量操作,不能使用IPC通信访问,否则性能会太慢


因此,我的问题是:有没有办法从子进程访问DOM?

在问题页面中进行讨论后,这个问题似乎无法解决;没有办法将DOM访问到子进程中,因为Electron(如nw.js)不是为此而设计的

更多信息请访问:

EDIT:最后,我找到了另一种解决问题的方法,使用
webview
标记可以运行带有Node.js功能的HTML页面,并始终进入新流程。更多信息