首页 > 解决方案 > 如何修复“window.minimize() 不是函数”?

问题描述

所以我对javascript和电子还很陌生。我创建了一个无框窗口并添加了一个带有 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">✕&lt;/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()
})

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

未捕获的类型错误:window.isMaximized 不是 HTMLButtonElement 中的函数。(menubar.js:11)

所以我不确定为什么关闭按钮有效而其他方法无效。

标签: javascriptjqueryhtmlecmascript-6electron

解决方案


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

试着去做console.log(window);,看看我到底是什么意思。

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

var win = remote.getCurrentWindow();

希望这有帮助。

-乔什


推荐阅读