1

REST API と対話するブラウザーで実行するための HTML および Javascript クライアントを作成しています。RouteMapを使用して URL を設定しています。だから私はこのようなコンベンションを続けてきました

http://mysite.com/#/{ResourceName}/[edit|view|list]/[Id]/

ルートを 1 つだけ設定し、hashchange にバインドされた関数でこれらのパラメーターを取得しています。ほとんどのものは正常に動作します。たった2つの問題で、私はそれらのために立ち往生しています。

  1. ユーザーが同じリンクを 2 回クリックしても、hashchange イベントは発生しません。はい、ハッシュは変更されていないため、明らかに発火しません。しかし、できることがあるはずで、それが欠けています。
  2. ハッシュ リンクを変更したくない UI で何かを変更すると (新しい div を表示して一部を非表示にするなど)、その履歴が失われ、[戻る] ボタンを適切にクリックしても戻ることができません。

どんな助けでも感謝します。

4

1 に答える 1

1

#1 については、おそらくリンク クリック イベントにハンドラーをアタッチする必要があります。そうすれば、リンクがクリックされているかどうかがわかります。onhashchange を使用するときは、常に onhashchange のポリフィルを支援する何かをクリック イベントにアタッチします。

#2 については、ユーザーの履歴を自動的に変更することには問題があることを指摘したいと思います。誰かの履歴を意味のないハッシュの変更で埋めることができます。ユーザーが実際に対話するときにのみ履歴を変更することをお勧めします。それ以外では、HTML5 は と を提供pushStatepopStateます。参照

于 2011-12-27T13:55:54.740 に答える