AJAX历史麻烦

时间:2014-07-24 21:36:42

标签: javascript php jquery ajax

所以我有这个动态php生成的代码:

<script>
    parent.document.title = 'Members | UrbanRanks';
    $("#cwrocket_button").click(function(){                                            
    $("#module").load("module.php?module=profile&user_url=cwrocket");
    window.history.pushState( null, null, '/cwrocket.html');
    parent.document.title = 'Cwrocket | UrbanRanks';
    $('html, body').animate({ scrollTop: 0 }, 'slow');
    return false;
    });
</script>
<a id="cwrocket_button" href="cwrocket.html">Cwrocket</a>

所有Ajax / jQuery函数都按预期工作,单击链接时忽略了标题和URL,忽略了仅用于搜索引擎优化的href。

问题是,当我回击或转发时,它只会更改地址栏上的url,而不会更改模块div中的Ajax内容。

我想看看是否有人可以帮助我实现代码,以便在不重新加载整个网站的情况下启用后退和转发。

尝试做:

window.history.pushState( {site:cwrocket}, null, '/cwrocket.html');

虽然后退和前进工作,但它会重新加载整个页面。

提前感谢任何解决此问题的人,请告诉我是否需要更多代码。

1 个答案:

答案 0 :(得分:0)

当您按下状态时,您需要保存重新加载所需的信息,然后您需要在单击后退箭头时收听该事件:

window.onpopstate = function(evt) {
    // restore the previous state
}

这是一个非常普遍的答案,但是当你推动它时,事件将会保存你保存的状态信息,所以你可以用它来恢复。