【问题标题】:event.preventDefault() for BrowserWindow events close/minimize/maximize not working in electron用于 BrowserWindow 事件的 event.preventDefault() 关闭/最小化/最大化在电子中不起作用
【发布时间】:2021-09-23 15:17:06
【问题描述】:

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

非常感谢您的回复。

代码片段:

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

【问题讨论】:

    标签: javascript node.js reactjs typescript electron


    【解决方案1】:

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

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

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

        var x = window.screenX, 
            y = window.screenY,
            width:window.innerWidth,
            height:window.innerHeight
    
        window.moveTo(x, y);
        window.resizeTo(width, height)
    

    【讨论】:

    • 感谢您的回复,您的解决方案似乎不错,但我无法使用建议的方法,因为我必须停止最小化/最大化/关闭的行为。
    猜你喜欢
    • 1970-01-01
    • 2016-09-30
    • 2018-04-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-10-06
    • 1970-01-01
    相关资源
    最近更新 更多