electron onbeforeunload 关闭不了页面,如何强制关闭窗口

electron版本:13

环境:win10 64位


  • 起因:
    • 新窗口引入了第三方iframe,第三方地址是不可控的,因为第三方注册了window.onbeforeunload事件导致窗口不能正常关闭。

 

  • 解决方法:
    • 开始是想在自己的页面写个 window.onbeforeunload 事件给重置掉iframe页面的事件,后来发现其他问题,就是即使不加载iframe页面,window.onbeforeunload事件在当前页面不管怎么写,窗口都不会关闭,按照官方文档的写法也不可以,删了window.onbeforeunload事件 不加载iframe第三方页面是可以正常关闭的,没搞清楚是哪里错了。
    • 后来想到换一种方案,阅读文档发现窗口支持强制关闭,(因为之前测试过调用win.close也会关闭不了),试了下强制关闭果然可以,文档如下:

 

  • 代码
    •  主进程代码
// 关闭窗口
  ipcMain.on("win-close", function(e) {
    console.log('关闭')
    win.destroy();
  });
    •  页面代码
window.onbeforeunload = (e) => {
        ipcRenderer.send("win-close");
       
        e.returnValue = undefined
    };

 

 

参考文档地址:https://www.bookstack.cn/read/electronjs-13.0-zh/9ca093dc663dae31.md

 


  

 

posted @   萧乐乐  阅读(1487)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
点击右上角即可分享
微信分享提示