使用 history.js 时遇到后退按钮单击事件的问题
Facing an issue with back button click event using history.js
我已经使用 history.js(使用 pushState 方法)在 ajax 调用上实现了状态感知 URL。现在,当我单击任何浏览器的后退按钮时,它应该使用我的 ajax method.For 加载以前状态的内容,我已经完成了以下操作:
$(function () {
// history.js
History.Adapter.bind(window, 'statechange', function () {
var State = History.getState();
callAjax(State.data.loadUrl);
});
});
但是这段代码在每次状态更改时都会执行,在 forward/backward 时也会执行。我只想在任何浏览器的前进/后退事件上执行它。我该怎么做才能得到这个?
感谢任何帮助!
我做了以下事情:
$(function () {
// history.js
History.Adapter.bind(window, 'statechange', function () {
if (manualStateChange == true) {
var State = History.getState();
callAjax(State.data.loadUrl);
}
manualStateChange = true;
});});
当我更改 URL 的状态时,我将值设置为:
manualStateChange = false;
如果我在 jquery 函数中为 manualStateChange 设置真值,那么在每次状态更改时它都会调用该函数。这就是为什么我从我的代码中删除了那行并且它对我有用。
我已经使用 history.js(使用 pushState 方法)在 ajax 调用上实现了状态感知 URL。现在,当我单击任何浏览器的后退按钮时,它应该使用我的 ajax method.For 加载以前状态的内容,我已经完成了以下操作:
$(function () {
// history.js
History.Adapter.bind(window, 'statechange', function () {
var State = History.getState();
callAjax(State.data.loadUrl);
});
});
但是这段代码在每次状态更改时都会执行,在 forward/backward 时也会执行。我只想在任何浏览器的前进/后退事件上执行它。我该怎么做才能得到这个?
感谢任何帮助!
我做了以下事情:
$(function () {
// history.js
History.Adapter.bind(window, 'statechange', function () {
if (manualStateChange == true) {
var State = History.getState();
callAjax(State.data.loadUrl);
}
manualStateChange = true;
});});
当我更改 URL 的状态时,我将值设置为:
manualStateChange = false;
如果我在 jquery 函数中为 manualStateChange 设置真值,那么在每次状态更改时它都会调用该函数。这就是为什么我从我的代码中删除了那行并且它对我有用。