我目前使用 Code Igniter 来获得漂亮的 URL,并且我有这个系统,它基本上使用 ajax 来让你搜索健身房。
我在加载健身房列表后使用推送状态,如下所示:
example.com/list/search_key/pagination-page/sort-by/filters~seperated~by~that
其中 search_key 是他们想要搜索健身房的地区的城市、州或社区,过滤器是单独的复选框。
会发生什么,我使用 .ajax 通过 post 发送搜索键和每个单独的复选框值(1 或 0),然后代码点火器使用 POST 数据和 PHP,生成一个像上面这样的 url。ajax 成功推送将 URL 声明为 PHP 生成的 URL。
问题是,如果您使用说分页转到第 2 页,并且您想转到第 1 页,那么您自然会使用浏览器的后退按钮。问题是,它仅将 URL 地址栏支持到当前地址之前的 url,它实际上并没有更改页面内容。我需要它来使用旧的(以前的)url 重新加载页面,或者刷新,或者其他什么。
我什至可以使用 ajax 使用 URL 数据重新提交表单,但我不知道如何执行此操作。
我已经尝试了一些东西,但没有任何效果。几乎我已经在谷歌的第一页上尝试了所有东西,一切看起来都很有希望,但实际上没有任何效果。
如果 pushstate url 更改为以前的 url,是否有刷新页面?
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>