Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/414.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 在创建子窗口的过程中,如何修复BrowserWindow不是构造函数错误_Javascript_Electron - Fatal编程技术网

Javascript 在创建子窗口的过程中,如何修复BrowserWindow不是构造函数错误

Javascript 在创建子窗口的过程中,如何修复BrowserWindow不是构造函数错误,javascript,electron,Javascript,Electron,我正在使用electron构建一个包含两个窗口的应用程序。我正在尝试从渲染器进程内部打开第二个窗口,操作如下: const electron = require('electron'); const BrowserWindow = electron.BrowserWindow; const childWindow = new BrowserWindow({ width: 800, height: 600 }); 我在说一个错误 BrowserWindow不是构造函数 我的另一个选

我正在使用electron构建一个包含两个窗口的应用程序。我正在尝试从渲染器进程内部打开第二个窗口,操作如下:

const electron = require('electron');
const BrowserWindow = electron.BrowserWindow;

const childWindow = new BrowserWindow({
   width: 800,
   height: 600
});
我在说一个错误

BrowserWindow不是构造函数


我的另一个选择是使用window.open,但这并不理想,因为它返回的BrowserWindowProxy对象功能有限。

我发现我所需要做的就是使用
远程
模块。 Electron不允许从渲染器进程直接创建浏览器窗口,因为它(BrowserWindow)需要
ipc
模块与主进程通信。电子文档说明:

在Electron中,GUI相关模块(如对话框、菜单等)仅在主进程中可用,而在渲染器进程中不可用。为了从渲染器进程使用它们,ipc模块必须向主进程发送进程间消息

因此,
new electron.BrowserWindow()
不起作用。 但是,使用
remote
模块可以正确设置与主进程的进程间通信,以下修改后的代码适用于我:

const electron=require('electron');
const BrowserWindow=electron.remote.BrowserWindow;
const childWindow=新浏览器窗口({
宽度:800,
身高:600

});对于同样存在此问题且其代码不在electron渲染器中的任何人,您可能正在使用
node script.js
运行脚本,您需要使用
electron script.js

运行脚本,我通过包含electron.remote.BrowserWindow来修复自己的问题。你应该考虑提供一个完整的自我回答,因为你找到了解决问题的方法。只是增加了一个完整的自我回答,谢谢!我收到TypeError:无法使用上述代码读取未定义的属性'BrowserWindow'