window.on ('close', (event) => {
// Use event.sender to get the instance of the window that called this event
console.log (event.sender.id === window.id); // -> true
});
window.on ('close', (event) => {
// Use event.sender to get the instance of the window that called this event
console.log (event.sender instanceof BrowserWindow); // -> true
console.log (event.sender === window); // -> true
});
3条答案
按热度按时间q7solyqu1#
因为
event.sender
的类型是WebContents
,所以你不能将它与BrowserWindow
进行比较,除非你将event.sender
与BrowserWindow.webContents
属性进行比较,但我猜这不会提供唯一的标识。解决方法是比较event.sender.id
和window.id
35g0bw712#
BrowserWindow是EventEmitter;因此,窗口的示例方法
on
在回调函数中返回一个event
参数,您可以通过使用event.sender
属性从该参数访问窗口的示例。2w3kk1z53#
如果你只是想关闭,你可以这样做:
event.sender
的类型为WebContents
,这意味着您可以执行以下操作。你不需要一个BrowserWindows数组:有了它,您就可以使用这样的
BrowserWindow
执行任何可能的操作另请参阅:文档- BrowserWindow.fromWebContents()