使用带有rails ajax请求的history.pushState

时间:2014-01-17 08:51:19

标签: javascript ruby-on-rails ajax

我正在开发应用中的消息部分,并且遇到了history.pushState的一些问题。基本上,我有2个视图,一个列出所有线程,一个显示单个线程。当用户单击某个线程(链接设置为remote = true)时,rails会使用我的show.js.erb文件进行响应。该文件包含

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

目前,当点击该主题时,该网址会正确更新为/ messages / ID。但是,当我点击后退按钮时,网址会更改回/消息,但页面内容不会更改。我该如何开展这项工作?我是以正确的方式去做的吗?

1 个答案:

答案 0 :(得分:1)

您必须回复popstate事件。

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