我只是一个js初学者,所以也许我只是不理解它。但是,window.onstatechange
当您之前使用 更改状态时,当您点击浏览器的后退/前进按钮时,不应该触发History.stateObj
吗?
我实际上在 Firebug 控制台中看到了对象的变化,但window.onstatechange
不会触发!此外 - 非常令人困惑 - 当我window.onpopstate
改为使用时,对象不再改变(使用后退/前进按钮时)。
这就是我所做的:
$('.container').click(function(e) {
e.preventDefault();
var title = $(this).data('title');
stateObj = { show: title }
History.pushState(stateObj, document.title, '?show=' + title);
}
window.onstatechange = function() {
var title = History.getState().data['show'];
alert('title');
}
我已经从这里发现,我必须使用
History.Adapter.bind(window,'statechange',function(){
var title = History.getState().data['show'];
alert('title');
});
...这行得通,但我还是不太明白为什么window.onstatechange
不开火?!
// 编辑:在 Github 上打开了一张票
有什么建议么 ?