2012-04-19 55 views
0

我目前使用jQuery將內容動態加載到持有者div中,然後使用pushstate更新url。在jQuery中使用pushstate和加載回導航

我有以下代碼到目前爲止(部分除外,例如簡單):

$("body").on("click", "a:not(.noclick)", function(){ 

    history.pushState({path: $(this).attr("href")}, "", $(this).attr("href")); 

    $("#main").load($(this).attr("href")); 

    return false 
}); 

它將按預期和URL的變化應該對新內容的負載,但是後退按鈕什麼是目前非功能,當按下後,網址變成了前一個,但沒有其他的事情發生。

我有一個網頁建立的方式,您可以使用該網站與jQuery加載內容沒有標題或沒有任何JavaScript和頁面顯示從他們的網址,因此這部分沒有問題。

有沒有一種方法可以在後退導航中使用加載來加載最後的pushstate歷史記錄?我寧願不使用散列,但不確定是否可能沒有?

Facebook似乎這樣做與他們的導航,如果這有幫助嗎?

回答

0

您需要一個popstate事件處理程序。

但是,爲什麼不使用jquery-pjax來使這個別人的問題。

一旦你已經包括了pjax腳本,可能是以下就足夠了:

$(function() { 
    $("a:not(.noclick)").pjax("#main", { fragment: "#main" }); 
}); 

這種特殊的使用不需要任何服務器處理,以除去非#main內容,但pjax還支持部分內容,你指的是。