electron 监听窗口高端变化

一、在主进程中监听窗口大小变化

1. 使用 `BrowserWindow` 的实例方法

在主进程中,可以获取窗口实例并添加 `resize` 事件监听器。

javascript 复制代码
const { BrowserWindow } = require("electron");



const win = BrowserWindow.getFocusedWindow();

if (win) {

  win.on("resize", () => {

    const { height } = win.getBounds();

    console.log(`窗口高度变为:${height}`);

  });

}

二、在渲染进程中监听窗口大小变化

1. 使用 `ipcRenderer` 与主进程通信

在渲染进程中,可以使用 `ipcRenderer` 发送消息给主进程,让主进程监听窗口大小变化并将结果发送回渲染进程。

1.1 首先在渲染进程中引入 `ipcRenderer`

javascript 复制代码
<script>

  const { ipcRenderer } = require("electron");



  ipcRenderer.send("start-watch-window-size");

</script>

1.2 然后在主进程中监听来自渲染进程的消息并添加窗口大小变化监听器

javascript 复制代码
const { ipcMain, BrowserWindow } = require("electron");



ipcMain.on("start-watch-window-size", () => {

  const win = BrowserWindow.getFocusedWindow();

  if (win) {

    win.on("resize", () => {

      const { height } = win.getBounds();

      win.webContents.send("window-size-changed", height);

    });

  }

});

1.3 最后在渲染进程中接收主进程发送的窗口高度变化消息

javascript 复制代码
<script>

  const { ipcRenderer } = require("electron");



  ipcRenderer.on("window-size-changed", (event, height) => {

    console.log(`窗口高度变为:${height}`);

  });

</script>
相关推荐
乌拉那拉丹2 分钟前
vue3 配置跨域 (vite.config.ts中配置)
前端·vue.js
happymaker06265 分钟前
web前端学习日记——DAY01(HTML基本标签)
前端·学习·html
angerdream6 分钟前
最新版vue3+TypeScript开发入门到实战教程之DOM操作
javascript·vue.js
笨笨狗吞噬者9 分钟前
【uniapp】小程序支持分包引用分包 node_modules 依赖产物打包到分包中
前端·微信小程序·uni-app
悟空瞎说19 分钟前
Electron 踩坑实录:主窗口 icon 配置了,打包 Windows 后死活不显示?(全网最细排查+解决方案)
前端
Lee川40 分钟前
Vue Router 4 核心精讲:从原理到面试实战
前端·vue.js
树上有只程序猿43 分钟前
2026年,学“前端”还有前途吗?
前端
A923A1 小时前
【Vue3大事件 | 项目笔记】第六天
vue.js·笔记·前端框架·前端项目
我命由我123451 小时前
JS 开发问题:url.includes is not a function
开发语言·前端·javascript·html·ecmascript·html5·js
weixin199701080161 小时前
义乌购商品详情页前端性能优化实战
前端·性能优化