2014-01-17 37 views
1

我正在處理應用程序中的消息傳遞部分,並且遇到了一些history.pushState問題。基本上,我有2個視圖,一個列出所有線程,另一個顯示單個線程。當用戶點擊一個線程(鏈接設置爲remote = true)時,rails會用我的show.js.erb文件進行響應。該文件包括使用history.pushState和rails ajax請求

$("#layout-body").html("<%=j render :partial => 'thread' %>"); 
    if (Modernizr.history) { history.pushState("test: testy", null, "<%=j raw message_thread_url(params) %>"); } 

當前,當線程被點擊時,url正確更新到/ messages/ID。但是,當我點擊後退按鈕時,url會變回/ messages,但頁面內容不會更改。我如何去做這項工作?我是否以正確的方式開展工作?

回答

1

您必須回覆popstate事件。

window.addEventListener("popstate", function(e) { 
    console.log(location.pathname); 
}); 
+0

是的我讀了一些關於這個,但我對js的理解是有限的&我不知道如何使用它來更新頁面,當popstate事件被激發。我可以更新網址,但頁面內容可能相同,或原始js混亂 – Dave

+0

當觸發'popstate'事件時,_you_必須更改頁面內容。它不像正常的後退按鈕動作那樣是自動的。 – nathanvda

+0

感謝您的回覆,但這仍然不能回答我如何真正去改變頁面內容的問題 – Dave