我目前正在使用jQuery将内容动态加载到holder div中,然后使用pushstate更新url。
到目前为止,我有以下代码(例如,一些被排除,例如简单):
$("body").on("click", "a:not(.noclick)", function(){
history.pushState({path: $(this).attr("href")}, "", $(this).attr("href"));
$("#main").load($(this).attr("href"));
return false
});
它按预期工作,并且url更改为新内容加载时应该是什么,但后退按钮当前不起作用,当按下后面时,url更改为上一个,但没有其他任何事情发生。
我的网页构建方式可以让你使用带有jQuery的网站加载没有标题的内容,或者没有任何javascript和页面从他们的网址显示,所以这部分没有问题。
有没有办法可以在后台导航上使用加载来加载最后的状态历史记录?我宁愿不使用哈希但不确定是否可以没有哈希?
如果有帮助的话,Facebook似乎会通过导航来做到这一点吗?答案 0 :(得分:1)
https://developer.mozilla.org/en-US/docs/DOM/window.onpopstate
如果您不想使用pjax,此链接将为您提供帮助。
答案 1 :(得分:0)
您需要一个popstate
事件处理程序。
但是为什么不使用jquery-pjax来解决别人的问题。
一旦你包含了pjax脚本,可能以下就足够了:
$(function() {
$("a:not(.noclick)").pjax("#main", { fragment: "#main" });
});
此特定用法不需要任何服务器处理来删除非#main
内容,但pjax也支持您引用的部分内容。