首页 > 解决方案 > Electron:我们可以使用 BrowserWindow 的唯一 ID 访问它吗?

问题描述

假设多次调用以下函数来创建 BrowserWindow,比如 5 次。

let mainWindow;

function createWindow() {
    "use strict";

    mainWindow = new BrowserWindow({ 
        height: height,
        width: width,
        minHeight: height,
        minWidth: width,
        icon: __dirname + iconPath,
        frame: false,
        backgroundColor: '#FFF',
        show: false
    });

    mainWindow.loadURL(url.format({ 
        pathname: path.join(__dirname, address),
        protocol: 'file',
        slashes: true
    }));

    mainWindow.once('ready-to-show', () => {
        mainWindow.show();
        mainWindow.focus();
    });

    mainWindow.on('closed', () => {
        mainWindow = null;
    });
}

这将生成 5 个不同的 BrowserWindow。

BrowserWindow 是否有它自己的唯一标识来识别?或者我们可以为其分配一个唯一的 id,以便我们可以使用它自己的 id 访问它们?

标签: javascriptnode.jselectron

解决方案


是的,它确实。你可以像这样得到它:mainWindow.id它会类似于12取决于打开这个窗口时已经打开了多少个窗口。

你也可以BrowserWindow像这样从它的 id 中得到一个:

var myWindow = BrowserWindow.fromId(id);

BrowserWindow.fromId文档。

window.id文档。


推荐阅读