1. ホーム
  2. javascript

HTML5のpushstateで、popstateイベントがbackアクションから来るのかforwardアクションから来るのかを取得するにはどうすればよいですか?

2023-11-17 03:43:33

質問

私は、次へまたは戻るアクションに応じて対応するアニメーションを行うウェブページを開発しています。私がイベントを受け取るとき、ユーザーがPushstate APIを使用して戻るまたは進む履歴ボタンをクリックしたかどうかをどのように知ることができますか、または私は自分で何かを実装しなければなりませんか?

どのように解決するのですか?

自分で実装する必要がありますが、非常に簡単です。

  • を呼び出すとき pushState データオブジェクトに一意のインクリメントID (uid) を与えます。
  • いつ onpopstate ハンドラが呼び出されたとき、最後のステート uid を含む永続変数に対してステート uid をチェックします。
  • 永続的な変数を現在の状態 uid で更新します。
  • 状態 uid が最後の状態 uid より大きいか小さいかによって、異なるアクションを実行します。