如何修复“ window.minimize()不是函数”?

时间:2019-05-11 07:57:10

标签: javascript jquery html ecmascript-6 electron

所以我对javascript和electronic还不陌生。 我创建了一个无框窗口,并添加了一个带有3个按钮的栏(最小化,最大化和关闭)。

<div class="menu-buttons">
      <button id="window-minimize" class="menu-button"></button>
      <button id="window-maximize" class="menu-button"></button>
      <button id="window-close" class="menu-button">✕</button>
</div>

我还添加了脚本menubar.js:

const $ = require('jquery')
const { remote } = require('electron')

var window = remote.getCurrentWindow()

$('#window-minimize').click(() => {
    window.maximize()
})

$('#window-maximize').click(() => {
    if(!window.isMaximized()) {
        window.maximize()
    } else {
        window.unmaximize()
    }
})

$('#window-close').click(() => {
    window.close()
})

现在我的问题是关闭按钮可以很好地工作,但是其余窗口方法返回错误:

  

未捕获的TypeError:window.isMaximized不是一个函数       在HTMLButtonElement。 (menubar.js:11)

所以我不确定关闭按钮为何起作用,而其他方法不起作用。

2 个答案:

答案 0 :(得分:0)

使用windowState

if (window.windowState == 1) //Window is maximized
if (window.windowState == 2) //Window is minimized
if (window.windowState == 3) //Window is at normal size
if (window.windowState == 4) //Window is full screen

答案 1 :(得分:0)

在电子window内定义了全局范围,window.close()仍将起作用,因为它是该范围内的函数。

尝试做console.log(window);来了解我的意思。

要解决此问题,应将您的 window变量重命名为其他名称。示例:

var win = remote.getCurrentWindow();

希望这会有所帮助。

-乔什