1

ページの訪問者がブラウザを閉じたときに Cookie を設定したいと考えています。このような onbeforeunload メソッドを使用しました

<script language="JavaScript" type="text/javascript">
  window.onbeforeunload = confirmExit;
  function confirmExit()
  {
    return "You have attempted to leave this page.  If you have made any changes to the fields without clicking the Save button, your changes will be lost.  Are you sure you want to exit this page?";
  }
</script>

このリンクをたどった

しかし、ページを更新したり、ページ上のハイパーリンクをクリックしたりしても、アラートが表示されることがわかりました。

訪問者がページの更新時ではなく、ブラウザーの十字ボタンをクリックしたときにのみ Cookie を設定する必要があります。

上記のようなリンクのいくつかをたどり、ここに別のリンクをたどりました。そして投稿から、クローズとリフレッシュを区別できないことがわかりました。しかし、それらの投稿は3〜4年前のものです。

JavaScript または Jquery を使用してこれらのイベントを区別する方法はありますか?

4

3 に答える 3

1

うーん、これはどうですか:

  1. onbeforeunload に Cookie を設定する
  2. グローバルにオンロードし、Cookie のタイムスタンプをチェックして、これがリンクか新しいセッションかを確認します
  3. タイムスタンプの差が数秒だけの場合は、Cookie を削除します
于 2013-06-10T14:42:55.580 に答える
0

さて、ブラウザーを閉じると unload が呼び出され、リロードしようとすると onload が呼び出されます。これらのプロパティを使用してフラグを設定し、それに応じてイベントを発生させることができます

ブラウザを閉じてリロードする 詳細については、このリンクを確認してください

于 2015-01-06T16:16:51.143 に答える