javascript - 用于 BrowserWindow 事件的 event.preventDefault() 关闭/最小化/最大化在电子中不起作用
问题描述
我正在尝试覆盖电子浏览器窗口的close
, minimize
&maximize
事件的默认行为。我收到了这些事件,但event.preventDefault()
无法正常工作。我不想禁用窗口关闭/最小化/最大化按钮,而是执行一些自己的操作。我正在使用Electron v13.1.2、Chromium v91.0.4472.77、Node v14.16.0、macOS Big Sur v11.2。
非常感谢您的回复。
代码片段:
win.on('maximize', (event) => {
event.preventDefault()
console.log('This is maximize event')
// Do something else
})
解决方案
现代浏览器可能不允许您覆盖该功能,因为这是直接的应用程序/操作系统操作。另外,作为一项安全措施,您不希望阻止用户关闭网页或应用程序。
要尝试覆盖最大化或最小化,您可以尝试使用 window.resize?
如果是我,我会尝试保留窗口宽度和高度的变量,然后当它们最大化时,我会重新设置窗口。
var x = window.screenX,
y = window.screenY,
width:window.innerWidth,
height:window.innerHeight
window.moveTo(x, y);
window.resizeTo(width, height)
推荐阅读
- angular - 拥有一个打字稿类的属性取决于另外两个,如何进行?
- python - Find matching values in two pandas dataframes and return a value from the matching row
- javascript - 如何从对象数组中填充多个输入字段
- java - 具有固定初始值的累积差
- kotlin - Kotlin 是否有与 swift 中的“DispatchWorkItem”完全相同的东西?
- html - 网站 no_id yes_class getelement 然后点击
- javascript - Mock imported function with jest in an await context
- javascript - Asynchronous code in nested forEach loop- react native
- python - AttributeError when using ColumnTransformer into a pipeline
- html - Display Flex in Safari align