最近再作electron app程序的作刪除數據操做的時候遇到一個詭異的bug,頁面點擊刪除按鈕後,彈出確認對話框後,頁面失去焦點,文本框沒法點擊輸入任何參數,可是使用瀏覽器操做正常,最後肯定是electron的bug,electron在彈出window默認對話框時會失去焦點,在githup上找到的解決方案是本身實現對話框覆蓋window自帶對話框,個人作法是覆蓋window自帶的alert和confirm方法,很少說了,如今貼代碼。git
var userAgent = navigator.userAgent.toLowerCase(); if (userAgent.indexOf(' electron/') > -1){ const { dialog } = require('electron').remote;//修改默認對話框,修復electron彈出默認對話框後頁面失去焦點的bug alert = function(str){ var options = { type: 'warning', buttons: ["肯定"], defaultId: 0, cancelId:0, detail:str, message: '' } dialog.showMessageBoxSync(null,options) } confirm = function(str){ var options = { type: 'warning', buttons: ["確認","取消"], defaultId: 0, cancelId:1, detail:'', message: str } var flag = dialog.showMessageBoxSync(null,options); if(flag==0){ return true; }else{ return false; } } }
參考資料:https://github.com/electron/electron/issues/20400github