我正在尝试使用history.pushState()
更改浏览器网址,因为用户会滚动浏览电影列表。我正在使用django-endless-pagination和Twitter风格的分页。
我想要做的是,当用户不断向上或向下滚动当前的电影列表时,URL会发生变化。假设用户向下滚动到第9页,URL将更新为/?page=9
。但是,如果用户向上滚动到第2页,则网址应更新为/?page=2
。
结果是,如果用户点击某个链接,然后点击后退按钮,则会返回到他们所在的最后一个“页面”。
这可以继续使用django-endless-pagination,但如果用户向上滚动页面,我希望它反向工作。我认为jquery-waypoints是我问题的答案。
我通过Ajax加载页面生成了这个:
<li style="display: none">
<div id="waypoint1" class="waypoint" data-request-path="/movie/?page=1"></div>
</li>
这些中的每一个都获得一个唯一的ID,并且有一类航路点。数据请求路径是当前的“页面”路径。
我试图使用:
$(".waypoint").waypoint(function() {
history.pushState({scrollTop:document.body.scrollTop},document.title,$(this.element).attr("data-request-path"));
});
我们第一次传递航点时会起作用,但在传递其他航点时不起作用。在用户滚动之前,通过Ajax提取其他结果之前,文档中不存在这些额外的航点。
我需要做些什么才能让路标在滚动到页面并显示在页面上时导致URL更改?