我目前使用的代码点火器有漂亮的URL,我有这个系统,基本上使用Ajax允许您搜索健身房。如何在pushState后按下返回时重新加载页面?
使用健身房的列表后推状态林被装载时,是这样的:
example.com/list/search_key/pagination-page/sort-by/filters~seperated~by~that
其中search_key是他们想要搜索健身房的区域中的城市,州或邻居,而过滤器是单独的复选框。
会发生什么,我使用.ajax发送搜索关键字和每个单独的复选框值(1或0),然后代码点火器使用POST数据和PHP,生成一个像上面那样的url。 ajax成功推送表明URL是PHP生成的URL。
问题是,如果您使用say分页转到第2页,并且您想转到第1页,那么您自然会使用浏览器后退按钮。问题是,它只在当前URL之前将URL地址栏返回给URL,它实际上并不改变页面内容。我需要它重新加载页面使用旧的(以前)的网址,或刷新,或其他。
我甚至可以使用ajax重新提交使用URL数据的表单,但我不知道如何做到这一点。
我已经尝试了一些东西,但没有任何作品。我已经尝试了谷歌第一页上的所有内容,并且所有内容看起来都很有前途,但实际上并没有任何效果
无论如何刷新页面,如果pushstate网址更改为以前的网址?
PS下面有一些关键的东西,我用尽:
<script type="text/javascript">
$(window).unload(function(e){
e.preventDefault();
alert("Back was pressed!");
});
// If this wouldve worked, it wouldve atleast alerted me that.
// The code off this URL: http://www.mrc-productivity.com/techblog/?p=1235
// Some of the codes off this URL: http://forum.jquery.com/topic/howto-force-page-reload-refresh-of-previous-page-when-back-button-is-pressed
// A few others.
</script>
我还是不太明白这个概念。我明白你需要打电话到popstate,但上面的代码只有在你点击前进按钮时才有效。我也发现这个网页:http://stackoverflow.com/questions/7888711/page-not-reloading-via-back-when-using-pushstate-onpopstate如果你去他的jsfiddle例子:http:// jsfiddle。 net/pimvdb/CCgDn/1 /它适用于他,但是如果我复制/粘贴代码,它只会提醒“初始状态”。我究竟做错了什么? – 2012-07-30 23:15:56
注意我得到了正确的工作,但添加了location.reload();在那里你把event.state.foo这正是我想要做的,但我也需要这样做,当后退按钮也被按下。 – 2012-07-30 23:19:54
没关系。用户操作错误不佳。 Lmao谢谢了。我很感激帮助。与location.reload()完美合作 – 2012-07-30 23:25:05