示例
您已打开多个BrowserWindows并将其存储在BrowserWindows数组中,您想知道哪个窗口称为close事件,以便可以从数组中删除该特定的BrowserWindow。
window.on('close', () => {
// Get the instance of the window that called this event
})
如何?
答案 0 :(得分:0)
BrowserWindow是EventEmitter;这样,窗口的实例方法on
在回调函数中返回一个event
参数,您可以使用event.sender
属性从中访问窗口的实例。
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
});
答案 1 :(得分:0)
由于event.sender
类型为WebContents
,因此您无法将其与BrowserWindow
进行比较,只有将event.sender
与BrowserWindow.webContents
属性进行比较,但我猜测不会提供唯一的标识。一种解决方法是将event.sender.id
与window.id
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
});