如何使用replaceState()而不是pushState()

时间:2015-12-08 11:00:13

标签: javascript jquery ajax history.js

我使用History.js功能实现了History.pushState。以下是代码:

function PushStateUrl(stateUrl) {
  manualStateChange = false;
  History.pushState({ loadUrl: stateUrl, rand: Math.random() }, document.title, stateUrl);
}

在浏览器的后退按钮上,此代码执行:

$(function () {
 History.Adapter.bind(window, "statechange", function () {
 var State = History.getState();
 var url = ((State.data.loadUrl == "undefined") ? State.data.loadUrl : State.url);
 if (typeof (manualStateChange) !== "undefined" && manualStateChange == true) {
    AjaxCall(url);
}
else if (typeof (State.data.loadUrl) == "undefined") {
    AjaxCall(url);
}
 manualStateChange = true;
 });    
});

但我想使用replaceState()代替pushState()。请指导我使用history.replaceState()

进行哪些更改

1 个答案:

答案 0 :(得分:0)

  

但我想使用replaceState()而不是pushState()。请指导我使用history.replaceState()

进行哪些更改

在代码中将单词push更改为replace。这两个函数采用相同的参数。

显然,如果你无处不在,那么处理后退按钮的代码就变得多余了(因为你永远不会回到存储状态)。