我使用history.js(使用pushState方法)在ajax调用上实现了State Aware URL。现在,当我点击任何浏览器的后退按钮时,它应该使用我的ajax方法加载以前状态的内容。为此,我做了以下操作:
$(function () {
// history.js
History.Adapter.bind(window, 'statechange', function () {
var State = History.getState();
callAjax(State.data.loadUrl);
});
});
但是这段代码会在每次状态更改以及前进/后退时执行。我只想在任何浏览器的前进/后退事件上执行它。我该怎么做才能得到这个?
任何帮助表示赞赏!
答案 0 :(得分:0)
我做了以下事情:
$(function () {
// history.js
History.Adapter.bind(window, 'statechange', function () {
if (manualStateChange == true) {
var State = History.getState();
callAjax(State.data.loadUrl);
}
manualStateChange = true;
});});
当我更改URL的satate时,我设置了值:
manualStateChange = false;
如果我在jquery函数中为manualStateChange设置了true值,那么在每次状态更改时它都会调用该函数。这就是我从代码中删除该行的原因,它对我有用。