2011-12-18 5 views
1

私は、ページをスキップするためにhashbang(#!)メソッドを使ってプロジェクトを進めてきました。基本的には1ページしかありません。異なるページに移動する場合はクリックしてもページは維持されますが、URLは変更されます。 index.html#homeからindex.html#aboutまで、新しいコンテンツはAJAX/JSON経由で読み込まれます。すべて正常に動作しますが、ブラウザで「戻る」(または転送する)場合、URLのページだけが変更されますが、jQueryはコンテンツをリロードするために起動されません。ブラウザで「戻る」イベントを捕らえて別のコンテンツをロードする

私が必要とするのは、jQueryからページを読み込むための機能を起動できるように、すべてのブラウザで前後のアクションを処理するコードです。これはどうすればいいですか?

+1

なぜ車輪を改造するのですか? [History.js](https://github.com/balupton/History.js/)はこれをすべて行い、HTML5のpushStateを含みます。 –

+0

こんにちはみんな、ありがとう! history.jsに関するAndrewのヒントは、私のニーズに完全に合っていました!アンドリュー;私がそれを受け入れることができる答えとしてあなたのコメントを追加することができれば。 – Richard

+0

ありがとう、ちょうど答えをしました:) '。 –

答えて

4

のための最高の投票答えでしたか? History.jsは、新しくHTML5 History APIをサポートし、履歴APIがサポートされていない場合には代わりにハッシュURLを使用するように正常に後退する、よく維持されたjQueryプラグインである&です。ほぼすべてのブラウザで動作します(IE 6も)。

1

hashchangeイベントをご覧ください。ハッシュが変更されると起動します。 ただし、はInternet Explorer 8をサポートする場合にのみ行う必要があります。

Internet Explorer 7はhashchangeをサポートしていないため、これに頼ることはできません。 Internet Explorer 9については、(もちろんChrome、Safari、Firefoxと合わせて)History APIをサポートしていますが、代わりにshould be usingとなります。エレガントな戻る/進むボタンのサポートを可能にしながら、あなたのURLを明確かつ短くセマンティックに保ちます。

関連する問題