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

发布于 2022-09-11 22:30:45 字数 265 浏览 8 评论 0

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

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

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

绝情姑娘 2022-09-18 22:30:45

问题已经解决,在这里自己回答一下。
思路是:判断当前点击的元素是否有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;
    }
}

}

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文