首页 文章

Atom Electron - 用javascript关闭窗口

提问于
浏览
36

我正在使用 Electron (以前称为atom-shell)并希望有一个极简主义的框架窗口,以便从HTML页面的_1422709中可以看到三个OSX窗口按钮(关闭,最大化,最小化) .

在将BrowserWindow定义为具有无框无框窗口时,我将Electron选项 frame 设置为 false .

我以为我可以用这样的东西来处理关闭按钮:

<a btn href="#" id="close" onclick="window.top.close(); return false"></a>

遗憾的是没有运气 . 知道怎么做到这一点?

1 回答

  • 107

    您必须访问由主进程创建的BrowserWindow对象,并在其上调用 minimizemaximizeclose 方法 . 您可以使用 remote 模块访问它 . 以下是绑定所有三个按钮的示例:

    const remote = require('electron').remote;
    
      document.getElementById("min-btn").addEventListener("click", function (e) {
           var window = remote.getCurrentWindow();
           window.minimize(); 
      });
    
      document.getElementById("max-btn").addEventListener("click", function (e) {
           var window = remote.getCurrentWindow();
           if (!window.isMaximized()) {
               window.maximize();          
           } else {
               window.unmaximize();
           }
      });
    
      document.getElementById("close-btn").addEventListener("click", function (e) {
           var window = remote.getCurrentWindow();
           window.close();
      });
    

    假设你的min,max,close按钮分别有 min-btnmax-btnclose-btn 的ID .

    您可以在此处查看BrowserWindow的完整文档以及您可能需要的其他功能:http://electron.atom.io/docs/v0.28.0/api/browser-window/ .

    它也可以帮助你看一下我写的关于构建一个看起来像Visual Studio的无框窗口的教程:http://www.mylifeforthecode.com/making-the-electron-shell-as-pretty-as-the-visual-studio-shell . 你的问题与一些css一起被覆盖以正确定位按钮 .

相关问题