2012-01-10 12 views
4

私のサイトでは、Facebook、Twitter、比較的小さなサイトKotaku Gamingのように、AJAXページの読み込みを実装したいと思います。

基本的に、これは私がやりたいことです。ドメインのすべてのページに静的なままで、AJAXとjQueryを使用して特定のコンテナにコンテンツをロードするだけです。

jQueryの$ .load()はほぼ完璧ですが、ほとんどの場合です。これは基本的に私が使用したいコードです:

$("#content").load("site.html"); 

しかし、別のページには、この機能を「ロードされ」ているとき、URLは変更されません。これにより、ブックマークやリンクが壊れてしまうため、受け入れられません。 URLを変更する必要があります。

$ .get()の問題は、ヘッダーがページの残りの部分とともに変更されていることです。これはもちろん私が探しているものではありません。

誰でも私がこれを達成するのを手伝ってください。上記のサイトがそれを行うことができる場合、なぜ私はできないのですか?

+0

これはおそらくhttp://stackoverflow.com/questions/6118693/how-can-i-change-the-page-url-without-refreshing-the-pageの複製です。 – SpoonNZ

答えて

1

最初の回答はHow can I change the page URL without refreshing the page?です。新しいアドレスを押すためにpushstateを使用してください。これは古いブラウザでは機能しないことに注意してください。私は、最良の理論は伝統的な方法に落ちることを提案します。

+0

[History.js ](https://github.com/balupton/History.js)を参照してください。 – bfavaretto

+0

「オブジェクトまたは文字列」とはどういう意味ですか? – LonelyWebCrawler

+0

誰かが「戻る」を押したときに読み込むページを知るために、何かを渡す必要があります。私は "oldpage.html"が良いスタートかもしれないと示唆しています。これを処理するポップステートイベントリスナを設定することができます。 https://developer.mozilla.org/en/DOM/window.onpopstateではより多くのはい – SpoonNZ

0

あなたはURLは、各ページの負荷を変更したいが、ヘッダーは同じままにしたい場合は、それだけで、ヘッダー用のテンプレートを作成し、各ページのコンテンツセクションを変更する価値があるかもしれません。

リンクPHPを使用している場合は、これはinclude/requireなどで簡単に行うことができます。

+1

(上記の私のリンクからリンクされている)が、私は同じヘッダーで新しいページをロードした場合、ページはまだ秒間のブランク行くだろう、新しいサイトを読み込みます。私はページの読み込みの間にそこにとどまるようにヘッダーをします。 – LonelyWebCrawler

+1

その場合、アンカーと 'window.location.hash'で何かをまとめることができるかもしれません - コンテンツを置き換えるためにajaxを使う行に何かがあり、次にハッシュ' www.example.com/#/これらのアンカーと戻るボタンとブックマーク – Mercurybullet

+0

トリックのルックアップとしてpage1'は、ページをリロードし、私はそのことを考えたことがない空白のページ – Mercurybullet

関連する問題