【发布时间】:2018-05-28 03:24:03
【问题描述】:
我是 Electron 框架的新手,使用 Electron 开发简单的桌面应用程序。 问题是,当我在电子应用程序中打开一个新窗口并使用菜单栏关闭按钮关闭它并再次尝试打开它时,它会抛出“对象已被破坏异常”。即使单击关闭按钮,我如何保留 BrowserWindow 对象???
【问题讨论】:
-
请出示您的代码
标签: javascript jquery node.js electron
我是 Electron 框架的新手,使用 Electron 开发简单的桌面应用程序。 问题是,当我在电子应用程序中打开一个新窗口并使用菜单栏关闭按钮关闭它并再次尝试打开它时,它会抛出“对象已被破坏异常”。即使单击关闭按钮,我如何保留 BrowserWindow 对象???
【问题讨论】:
标签: javascript jquery node.js electron
如果有人遇到此问题,而其他答案没有帮助。我在处理关闭窗口时遇到了类似的问题。我通过使用window.destroy() 而不是window.close() 来修复它
【讨论】:
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
});
【讨论】: