首页 > 解决方案 > 用于 BrowserWindow 事件的 event.preventDefault() 关闭/最小化/最大化在电子中不起作用

问题描述

我正在尝试覆盖电子浏览器窗口的close, minimize&maximize事件的默认行为。我收到了这些事件,但event.preventDefault()无法正常工作。我不想禁用窗口关闭/最小化/最大化按钮,而是执行一些自己的操作。我正在使用Electron v13.1.2Chromium v​​91.0.4472.77Node v14.16.0macOS Big Sur v11.2

非常感谢您的回复。

代码片段:

win.on('maximize', (event) => {
  event.preventDefault()
  console.log('This is maximize event')
  // Do something else
})

标签: javascriptnode.jsreactjstypescriptelectron

解决方案


现代浏览器可能不允许您覆盖该功能,因为这是直接的应用程序/操作系统操作。另外,作为一项安全措施,您不希望阻止用户关闭网页或应用程序。

要尝试覆盖最大化或最小化,您可以尝试使用 window.resize?

如果是我,我会尝试保留窗口宽度和高度的变量,然后当它们最大化时,我会重新设置窗口。

    var x = window.screenX, 
        y = window.screenY,
        width:window.innerWidth,
        height:window.innerHeight

    window.moveTo(x, y);
    window.resizeTo(width, height)

推荐阅读