ユーザーが私のページにアクセスしたら、そのページを更新してほしくありません。
いつでも、ユーザーはF5上部の更新ボタンを押します。次のような警告が表示されます。
ページを更新できません。
また、ユーザーが新しいタブを開いて、前のタブと同じURLにアクセスしようとすると、アラートが表示されるはずです。
同じページを2つのタブで開くことはできません
とにかく、JavaScript または jQuery を使用してこれを行うことができますか? ポイント 1 は本当に重要です。
ベストアンサー1
#1 は を介して実装できますwindow.onbeforeunload
。
例えば:
<script type="text/javascript">
window.onbeforeunload = function() {
return "Dude, are you sure you want to leave? Think of the kittens!";
}
</script>
ユーザーには[1]メッセージが表示され、ページに留まるか、そのまま進むかの選択肢が与えられます。これはますます一般的になりつつあります。Stack Overflowでは、投稿を入力中にページから移動しようとすると、この処理が行われます。ユーザーのリロードを完全に阻止することはできませんが、リロードした場合に非常に恐ろしい印象を与えることはできます。
2 番目は、ほぼ不可能です。セッションとユーザー ログインを追跡したとしても、2 番目のタブを正しく検出していることを保証することはできません。たとえば、ウィンドウを 1 つ開いていて、それを閉じたとします。次に、新しいウィンドウを開きます。最初のウィンドウをすでに閉じていても、おそらく 2 番目のタブとして検出されます。ユーザーは最初のウィンドウを閉じたため、最初のウィンドウにアクセスできず、拒否されているため、2 番目のウィンドウにもアクセスできません。
実際、私の銀行のオンライン システムは #2 を一生懸命実行しようとしており、上記の状況が頻繁に発生します。通常、銀行システムを再び使用できるようになるまで、サーバー側のセッションが期限切れになるまで待たなければなりません。
- の
onbeforeunload
関数のカスタム文字列戻り値かなり前から (2013 年頃から) すべてのブラウザで非推奨になっています。 機能はまだ動作しますが、カスタム メッセージはスパム対策にしか使用されていなかったため、削除されました。