我有一个单页面webapp,我正在尝试添加history.js支持。现在,无论用户在哪个屏幕上,URL都保持不变。我的计划是使用History.pushState()
更改URL并包含一个函数,该函数在执行时可以将应用程序从任何位置导航到新屏幕。这就是我所拥有的:
History.Adapter.bind(window, 'statechange', function() {
var State = History.getState();
console.log(State);
State.data.navigate();
History.log('statechange:', State.data, State.title, State.url);
});
// later
History.pushState({page: 'page1', navigate: function() {
navigateToPage1();
}}, 'Page 1', '?page1');
问题是,当我在data
事件处理程序中检索它时,我添加到statechange
对象的任何函数都会消失。是否有可以使用的解决方法,或者我是否需要进行大量的switch(State.data.page)
声明?
答案 0 :(得分:0)
我最终重新设计了应用程序以支持history.js。从长远来看,无论如何,这将是更可维护的选择。