何あなたが求めてする角度唯一のものではありません。あなたは純粋なjavascriptでそれを行うことができます。
お問い合わせはbeforeUnload
イベントです。ここで
がmozillaからいくつかのサンプルコードです:
window.addEventListener("beforeunload", function (e) {
var confirmationMessage = "\o/";
e.returnValue = confirmationMessage; // Gecko, Trident, Chrome 34+
return confirmationMessage; // Gecko, WebKit, Chrome <34
});
この例では、あなたのダイアログのテキストに戻り値を設定する必要がある1つを表示するには、ダイアログボックスを防ぎ、しかし:
window.addEventListener("beforeunload", function (e) {
var confirmationMessage = "\o/";
return "You will loose any unsaved changes, by leaving the page"
});
別mozillaページはさらに詳しく説明します
これは、他のコードをイベントハンドラに配置して、またはデータ損失についてユーザに知らせるための何らかの他のダイアログが表示されます。
何をしたいことはタブの変更については、実際にある場合には、クリーンな方法は今reasonably well supportedあるPage Visibility APIを使用することです。何をしたい
はもっとそうのような今である:あなたの答えが、我々のシステムのための
document.addEventListener("visibilitychange", handleVisibilityChange, false);
おかげで、ユーザーが別のタブを選択すると、SPA(単一ページのアプリケーション)と、警告ダイアログが表示されますです。その理由は、URLが変更されないので、イベント "beforeunload"は起動されません。 (locationChangeStart)など、このイベントや角度イベントをトリガする方法はありますか? – Ellbar
@Ellbarあなたの説明は 'locationChangeStart'とは何の関係もなく、URLはそのタブ*と同じです。それはまだ "ロードされている"、あなたが求めていることは、私が思っていたものとはかなり異なっています。タブを変更するだけでデータを失うべきではありません... – Pureferret
データを保存せずに選択したタブを離れる前に保護を表示する必要があります。私は簡単にカスタムダイアログを表示できることを知っていますが、ウェブサイトから離れるときに同じような警告を出したいと思います。私たちは、プロジェクトで 'angular-unsavedChanges'を使用します。 – Ellbar