首页 文章

使用pushstate返回导航并在jQuery中加载

提问于
浏览
0

我目前正在使用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加载没有 Headers 的内容或没有任何javascript和页面从他们的网址显示,所以这部分没有问题 .

有没有办法可以在后台导航上使用加载来加载最后的状态历史记录?我宁愿不使用哈希但不确定是否可以没有哈希?

如果有帮助,Facebook似乎用他们的导航做到这一点?

2 回答

  • 1

    你需要一个 popstate 事件处理程序 .

    但是为什么不使用jquery-pjax来解决别人的问题 .

    一旦你包含了pjax脚本,可能以下就足够了:

    $(function() {
      $("a:not(.noclick)").pjax("#main", { fragment: "#main" });
    });
    

    此特定用法不需要任何服务器处理来删除非 #main 内容,但pjax也支持您引用的部分内容 .

  • 0

    https://developer.mozilla.org/en-US/docs/DOM/window.onpopstate

    如果您不想使用pjax,此链接将为您提供帮助 .

相关问题