electron如何关闭多个窗口

electron关闭多个窗口,可以把所有的窗口对象都保存到一个数组中,然后循环调用close方法关闭。
global是全局变量,可以将数组保存在global中。
例子如下:
html页面代码:

<!DOCTYPE html>
<html>
  <head>
      <meta charset="UTF-8">
      <title>关闭多窗口</title>
      <script src="event.js"></script>
  </head>
  <body>
  <button onclick="onClick_Close()">关闭当前窗口</button>
  <p/>
  <button onclick="onClick_CreateMultiWindows()">创建多个窗口</button>
  <p/>
  <button onclick="onClick_CloseAllWindows()">关闭所有的窗口</button>

  </body>
</html>

event.js代码:

const remote = require('electron').remote;
const BrowserWindow = remote.BrowserWindow;
//  关闭当前窗口
function onClick_Close() {
    const win = remote.getCurrentWindow();
    win.close();
}

//
function onClick_CreateMultiWindows() {
    if(global.windows == undefined) {
        //  初始化windows数组
        global.windows = [];
    }

    var win = new BrowserWindow({show:false,x:10,y:20,widht:400,height:400});
    global.windows.push(win);
    win.loadFile('./child.html');
    win.on('ready-to-show',()=>{
        win.show();
    })
}
//  关闭所有的窗口(除了主窗口)
function onClick_CloseAllWindows() {
    if(global.windows != undefined) {
        //  扫描并关闭除了主窗口外的所有窗口
        for(var i = 0; i < global.windows.length;i++)
        {
            global.windows[i].close();
        }
        global.windows.length = 0;
        global.windows = undefined;
    }
}

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: