1. ホーム
  2. javascript

[解決済み] jQuery/Javascriptを使用して、あらゆる形式のページ更新を防止する。

2022-09-15 01:04:05

質問

ユーザーが私のページにアクセスしたら、ページを更新させたくないのです。

  1. いつでも、ユーザが F5 または上部の更新ボタンを押します。というアラートが表示されるはずです。

    ページを更新することはできません。

  2. また、ユーザーが新しいタブを開き、前のタブで同じURLにアクセスしようとすると、アラートが表示されるはずです。

    2つのタブで同じページを開くことはできません。

とにかくJavaScriptやjQueryを使えばいいんでしょうか?ポイント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>

ユーザーにはメッセージが表示され、ページに留まるか、そのまま進むかのオプションが与えられます。これはより一般的になってきています。Stack Overflow では、投稿を入力している間にページから移動しようとすると、このような動作になります。ユーザーが再読み込みするのを完全に止めることはできませんが、再読み込みされた場合に本当に恐ろしい音がするようにすることはできます。

#2は多かれ少なかれ不可能です。セッションとユーザーのログインを追跡したとしても、2 番目のタブを正しく検出していることを保証することはできないでしょう。たとえば、1 つのウィンドウを開いていて、それを閉じます。次に新しいウィンドウを開くとします。この場合、最初のウィンドウをすでに閉じているにもかかわらず、2つ目のタブとして検出される可能性があります。この場合、ユーザーは最初のウィンドウを閉じたのでアクセスできず、2 番目のウィンドウも拒否されたのでアクセスできません。

実際、私の銀行のオンラインシステムは、2.を実行するために本当に一生懸命で、上記の状況は常に起こります。私は通常、銀行システムを再び使用する前に、サーバー側のセッションが期限切れになるまで待たなければなりません。