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

 


  

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM