我在 JS 响应中使用这种类型的行
if (history && history.pushState){
history.pushState(null, null, '<%=j home_path %>');
}
但是当我back
在浏览器中单击时,我看到的是响应的 JS 代码而不是上一页。
有没有办法让后退按钮工作,所以它会重新请求最后一个 url 的页面(在home_path
pushStated 之前?
更新:
我发现了这个..似乎其他人也有同样的问题.. History.js 也没有解决它
所以要确认那里的一些评论..这只发生在chrome中
我的想法
我认为这一切的根源在于popstate请求的pushstate文档类型相同(js响应)。需要做的是对popstate请求html响应..我只是不知道如何
更多更新:
看到它提到使用的http://railscasts.com/episodes/246-ajax-history-state
$(window).bind("popstate", function() {
$.getScript(location.href);
});
这解决了这个问题,但是根据对没有 ajax 缓存的jQuery $.getScript() 的理解 ,它会添加时间戳.. 这会污染 url.. 将其关闭会使其无法再次以相同的效果工作..
任何人都知道如何解决这个问题?
更多更新
我在整个互联网上跟踪了该问题的踪迹,并以chrome中的一个问题结束,该问题指向一个 rails 问题(firefox 工作正常)以及rails-ujs 中的一个问题,即在响应中不包括 Vary Header
示例可以在这里找到