リロード/バックする前にプロンプトを表示するシンプルで非常にシンプルなバニラJSがあります。
window.onbeforeunload = function(e) {
return 'Dialog text here.';
};
はい、ここには Angular はありませんが、ちょっと待ってください....
Angular 以外のページでは、これは正しく機能し、ユーザーが戻る/再読み込みボタンを押すとプロンプトが表示されます。
ただし、Angular ページでは、これは次のメッセージで失敗します。
Uncaught Error: Too much time spent in unload handler. v8/DateExtension:1
getTimeOverride v8/DateExtension:1
jQuery.extend.now jquery.js:838
jQuery.Event jquery.js:3268
jQuery.event.trigger jquery.js:2877
jQuery.fn.extend.triggerHandler jquery.js:3604
removePatch angular.js:1563
Base.extend.destroy WidgetView.js:364
Base.extend.destroy Widget.js:244
Base.extend.destroy Widget.js:240
window.onunload main.js:14