I am new to Electron Framework, developing simple desktop application with Electron. Problem is that, when i open a new window in electron app and close it using menu bar close button and again try to open it, then it throws "Object has been destroyed Exception". How do i retain BrowserWindow object even though close button clicked???
Asked
Active
Viewed 4,095 times
4
-
show your code please – pergy Dec 14 '17 at 13:02
2 Answers
3
If anyone comes across this and the other answer didn't help. I was having a similar issue where I was handling the closing of a window. I fixed it by using window.destroy()
instead of window.close()

Mans
- 2,953
- 2
- 23
- 32
2
The BrowserWindow object is supposed to be destroyed when closed. You'll need to instantiate a new one when reopening instead of trying to reuse the reference.
Edit:
How you instantiate it depends on if you're doing it from the main process (i.e. "Main.js") or the renderer process.
From the main process, it would look like:
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
}));
If instantiating from the renderer process, you need to use the "remote" object to access the main process. So it'd be like:
var newWindow = new electron.remote.BrowserWindow({
width: 700,
height: 500
});

Jared
- 764
- 7
- 17
-
1I know its object has been destroyed after closing it, But where should i instantiate it again?? Trying to instantiate after button click but giving "BrowserWindow is not a constructor" error – user7808817 Dec 14 '17 at 07:13
-
I added an example. I was on my phone for the first post. Hope that helps! – Jared Dec 14 '17 at 18:17