electron 打开的新窗口,未关闭的情况下,再次点击,如何做到不重复创建窗口,而是呼出已经打开过的窗口

问题:electron构建的客户端,有项功能是点击不同的按钮能够创建不同的新窗口。但是当点击相同的按钮时,已经打开过的窗口会再次被重复创建。怎么样能做到不重复创建窗口,而是呼出这个的窗口。

下面是我当前新窗口创建方式:
clickEvent(url) {
let win = new BrowserWindow();
win.loadURL(url);
win.on(‘close’, () => {
win = null;
});
}

回答:

问题已经解决,在这里自己回答一下。
思路是:判断当前点击的元素是否有new BrowserWindow()的实列。如果没有就声明一下,并赋值给此元素,如果有实例,可直接show()呼出此窗口。第一次回答问题,估计表达的不是很清楚。还是看代码吧…

// 新窗口列表
const list = [{url: ‘html://xxx1.com’,isBrowserWindow: null},{url: ‘html://xxx2.com’,isBrowserWindow: null}]

// 点击事件
clickEvent(item) {

if (item.isBrowserWindow) { // 判断
    item.isBrowserWindow.show();
    item.isBrowserWindow.on('close', () => {
        item.isBrowserWindow = null;
    }
} else {
    let win = new BrowserWindow();
    win.loadURL(item.url);
    item.isBrowserWindow = win; // 赋值
    win.on('close', () => {
        item.isBrowserWindow = null;
    }
}

}

暂无评论

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注