- 私は書いているアプリケーションを作っています。ユーザーは、アプリケーションを開いたり、テキストを書き込んだり、仕事を保存したりすることができます。ボタンをクリックすると、(a)必要に応じて仕事を保存するか、(b)ただ終了する。
- 私はこれを達成するために
window.beforeunload
を使用しようとしていますが、ループを止めようとしているところで、「終了」を試みると同じプロンプトが無期限に表示されます。
ここにいくつかのコードです:アプリケーションがセットアップされたときにウィンドウを閉じる前に保存/終了を促す
windowCloseCheck() {
window.onbeforeunload = function(e) {
e.returnValue = false;
// window.alert('try to close me');
if(file.isUnsaved() || file.hasChanged()) {
// prompt - save or just quit?
file.fileWarning('You have unsaveeed work.', 'Save', 'Quit', function(){
// OPTION A - save
file.save();
}, function() {
// OPTION B: Quit.
ipcRenderer.send('quitter')
})
}
else {
// file is saved and no new work has been done:
ipcRenderer.send('quitter')
}
windowCloseCheck
は、ウィンドウを閉じるためのイベントリスナーを開始し、起動されます。私の条件は、ファイルが保存されていないか、元のファイルから変更されているかをチェックすることです。
fileWarning
は、電子ダイアログボックスをラップするだけの機能で、2つの選択肢と各選択肢を呼び出す機能がポップアップ表示されます。
残りのコードはavailableです(必要な情報を除外している場合)。私が非常に明確でないかどうかを明確にすることができれば幸いでしょう。
これはこれまでのところ、この問題に取り組む最も良い方法です。私は数日の間にさまざまなアプローチを試みてきましたが、バイパスする必要があることは常にあります。しかし、このアプローチは完璧に機能し、問題を起こすことなくこれを行うための唯一の方法です...少なくとも電子版では1.4.15 – Darthur