对象已被破坏Exception在电子按钮单击按钮后重新打开BrowserWindow

时间:2017-12-14 05:41:20

标签: javascript jquery node.js electron

我是Electron Framework的新手,使用Electron开发简单的桌面应用程序。 问题是,当我在电子应用程序中打开一个新窗口并使用菜单栏关闭按钮关闭它并再次尝试打开它时,它会抛出“对象已被破坏的异常”。即使单击关闭按钮???

,如何保留BrowserWindow对象

2 个答案:

答案 0 :(得分:1)

BrowserWindow对象应该在关闭时销毁。重新打开时,您需要实例化一个新的,而不是尝试重用该引用。

编辑:

如何实例化它取决于您是从主进程(即“Main.js”)还是渲染器进程执行此操作。

从主要流程看,它看起来像:

var electron = require("electron");
var url = require("url");
var path = require("path");
var newWindow = new electron.BrowserWindow({
    width: 700,
    height: 500
});

newWindow.loadURL(url.format({
    pathname: path.join(__dirname, '/SomeStuff.html'),
    protocol: 'file:',
    slashes: true
}));

如果从渲染器进程实例化,则需要使用“远程”对象来访问主进程。所以它就像:

var newWindow = new electron.remote.BrowserWindow({
    width: 700,
    height: 500
});

答案 1 :(得分:0)

如果有人遇到这个,而另一个答案没有帮助。我有一个类似的问题,我在处理关闭窗口。我使用window.destroy()代替window.close()

修复了此问题