あいまいなタイトルで申し訳ありませんが、これらの手順を再現することで、私が抱えている問題が表示されることを願っています。
- Google Chrome で、griffinalters.comにアクセスします(Firefox や IE の最近のバージョンでは問題はないようです)。
- 任意のカードをクリックします。
- 別のサイトにアクセスします (これには about:blank が適しています)。
- 戻ってみると、部分的なリクエストに対して読み込まれた HTML だけが表示されるはずです (たまたまhttp://www.griffinalters.com/card/29/?ajaxのようになります)。
pushState したリンクは でし/card/29/
たが、div にロードしたリンクは(この回答/card/29/?ajax
の提案に従って) でした。もともと私はinの存在をチェックしようとしていました(価値があるので、私は Django の方法を使用しています)。XMLHTTPRequest
HTTP_X_REQUESTED_WITH
is_ajax
XHR から返された HTML のチャンクを次のようにロードします。
function update_main_card_from_url(theurl) {
$(".primary-card").load(theurl + '?ajax');
}
これは次のように呼び出されます。
function micro_card_click(event) {
event.preventDefault();
var theurl = $(this).attr("href");
SimpleHistory.pushState(theurl);
update_main_card_from_url(theurl);
}
私が本当に理解したいのは、別のサイトからヒットバックすると、プッシュした URL が読み込まれず、フェッチされた URL が読み込まれる理由です。誰かが私を正しい方向に向けることができますか?