在主窗口中,单击按钮时,将通过ipc调用弹出第二个/子窗口.
这在第一次打开弹出窗口时有效.如果我关闭弹出窗口并再次重新打开它,我将收到此错误:
Uncaught Exception: Error: Object has been destroyed at Error (native)
at EventEmitter. (/home/xxxx/electron/fin/main.js:36:21) at emitOne
(events.js:96:13) at EventEmitter.emit (events.js:188:7) at
EventEmitter.
(/home/xxxx/electron/fin/node_modules/electron-prebuilt/dist/resources/electron.asar/browser/api/web-contents.js:156:13)
at emitTwo (events.js:106:13) at EventEmitter.emit (events.js:191:7)
#main.js on app ready:
mainWindow = new BrowserWindow({width: 800, height: 600})
mainWindow.loadURL(`file://${__dirname}/index.html`)
mainWindow.webContents.openDevTools()
mainWindow.on('closed', function () {
mainWindow = null
})
let popWindow = new BrowserWindow({parent: mainWindow, width: 450, height: 450, show: false});
popWindow.loadURL(`file://${__dirname}/app/pop.html`);
popWindow.webContents.openDevTools();
ipc.on('toggle-popwindow', function(){
popWindow.show();
});
当我在’closed’方法中添加hide()时:
popWindow.on('closed', function (event) {
popWindow.hide();
});
我明白了:
Uncaught Exception:
Error: Object has been destroyed
问题是什么?
解决方法:
如果您关闭浏览器窗口,它将被销毁,因此您无法隐藏或显示它.由于您想要隐藏它并稍后再次显示它,您应该为close
event添加一个调用preventDefault()的侦听器并隐藏窗口而不是关闭它.
原文地址:https://codeday.me/bug/20190824/1703918.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。