2017-07-13 20 views
0

電子がウィンドウが正常に閉じられなかったかどうかを判断する方法はありますか?Electronでウィンドウが閉じられなかったかどうかを確認するには?

win.once("closed",() => { 
    // send message to the page running in the renderer process that the window was closed 
}); 

win.close(); 

私はcloseまたはbeforeunloadハンドラでクローズをキャンセルしていないよと仮定すると、ウィンドウがまだクローズに失敗することができ、または私は、メッセージが常にゲストページに送信されることを確認することができますか?

答えて

0

は、docにthisプロパティを見てください:

win.closed

子ウィンドウが閉じます後にtrueに設定されているブール値。あまりに

そしてthis他のビット:

win.destroy()

フォースウィンドウを閉じ、アンロードとは イベントは、Webページのために放出されることはありませんbeforeunload、およびcloseイベントもしませんこのウィンドウでは が発行されますが、閉じたイベントは になります。それと

、あなたは、ウィンドウを閉じることを保証する機能を作成するために必要なすべての情報が必要です:

function forceClose(window) { 
 
    
 
    // try close first 
 
    window.close() 
 
    
 
    // force with destroy 
 
    if(!window.closed) { 
 
    window.destroy() 
 
    } 
 
    
 
    //just logging out the event 
 
    window.on('closed', (e) => { 
 
    console.log(e) 
 
    }) 
 
    
 
} 
 

 

 
// in your code, instead of calling win.close() 
 
forceClose(win)

+0

をしかし、フラグはtrueに設定されています* *「閉じた」イベントが発生した後、右か?だから何らかの理由で 'if(!window.closed)'チェックに至るまでに 'closed'イベントがまだ起動していない場合、問題が発生します。ウィンドウの作成に問題があった場合には、何らかのイベントが発生することを期待していました。 – pushkin

+0

ウィンドウを作成するかウィンドウを閉じる?多分私はあなたの質問を誤解していたかもしれません。あなたは 'win.close()'に問題があった(とそれに対処する)かどうかを知ることができる 'if'ノードにログを置くことができますが、破棄は常に*ウィンドウを閉じる* – kuzyn

+0

ウィンドウが作成されたときに聴くことができるイベントの場合、イベントオブジェクトを調べて詳細を確認するだけです。https://electron.atom.io/docs/all/#event-browser-window-created – kuzyn

関連する問題