2

重複の可能性:
ページをリロードせずに URL を変更する
ハッシュまたはページをリロードせずに新しい URL でアドレス バーを更新する

私のサイトは完全に Ajax リクエストに基づいており、サイト内の簡単なナビゲーションは 1 つのページからのみ行われます。つまり、ユーザーがメニュー項目をクリックすると、別のページが読み込まれるのではなく、HTML 要素内のコンテンツが読み込まれます。しかし、ユーザーがページを友人にリンクしたい場合、http://mysite.com/mymainpage.php は ajax がプルアップするものに関係なく常に同じであるため、常に同じになります。ユーザーヘッダーを変更するにはどうすればよいですか? たとえば、「ゲーム」をクリックすると、ブラウザの現在の URL アドレス バーを jquery/js/php/html で変更できますか? http://mysite.com/mymainpage.php?games=trueになるようにします。次に、ユーザーはアドレスバーからサイトの URL をコピーするだけで、ajax が読み込まれる正しいセクションに移動します。

4

1 に答える 1

4

ハッシュを使用できます:

(これが gmail の機能です: https://mail.google.com/mail/#inboxhttps://mail.google.com/mail/#sent )

を使用してハッシュを読み取ることができます

window.location.hash /* gives "#games" */

また

window.location.hash.substring(1) /* gives "games" */

そして、あなたはそれを使用して変更することができます

window.location.hash="#games"

また

window.location.hash="games"

(動作するようですが、最初のオプションを使用することをお勧めします)

次に、ユーザーがリンクをクリックするたびに、ハッシュを変更し、今と同じように新しいページをロードします。

ユーザーがページにアクセスしたら、URL にハッシュがあるかどうかを確認し、そのページを読み込みます。

hashchange イベント リスナーを追加することもできます。https://developer.mozilla.org/en-US/docs/Mozilla_event_reference/hashchangeを参照してください

編集:

いいえ、2 つのハッシュを持つことはできません ( http://mysite.com/mymainpage.php#games#fashion )

したがって、ユーザーが http://mysite.com/mymainpage.php?games=true にアクセスした場合、ユーザーをhttp://mysite.com/mymainpage.php#gamesリダイレクトする必要があります。

その後、リロードせずにhttp://mysite.com/mymainpage.php#fashionに変更できます。

于 2012-09-02T13:26:05.567 に答える