2

javascript または AngularJS を使用して、ブラウザーまたはタブのクローズを検出し、ユーザーがダイアログ メッセージでそれを防止できるようにするにはどうすればよいですか?

ユーザーが状態を失うことなくページを更新できるように、データをセッション ストレージに保存する AngularJS アプリを持っています。

ユーザーがタブまたはブラウザーを閉じると、セッションがアンロードされるため、進行中の作業が失われます。セッションがいつ破棄されているかを検出し、続行すると進行中の作業が失われることをユーザーに通知するメッセージをユーザーに表示し、[OK] を選択してブラウザー/タブを閉じ続けるか、キャンセルして停止しないようにします。閉鎖。ユーザーが更新ボタンを押したり、新しいページに移動したりしたときではなく、ブラウザー/タブを閉じたときにのみメッセージを表示したい。

注 1 : ローカル ストレージではなく、セッション ストレージを使用する必要があります。これは、異なるタブがアプリの分離されたインスタンスである必要があり、データを共有できないためです。

注 2 : unload イベントと beforeUnload イベントを試しましたが、更新ボタンがクリックされたとき、またはユーザーがページから移動したときにも発生するため、これらは機能しません。セッションが破棄される前、つまりタブ/ブラウザが実際に閉じられたときにのみメッセージを表示したい。

注 3 : これは企業内で使用する企業向けアプリであり、すべてのユーザーとそのユース ケースを知っているので、ポップアップ メッセージで迷惑をかける心配はありません。ユーザーがアプリを閉じられないようにすることは、公開 Web サイトでのユーザー エクスペリエンスに悪影響を与えることを認識していますが、これは非常に制御されたシナリオです。

4

1 に答える 1