无法在 history.js 数据中包含函数
Unable to include functions in history.js data
我有一个单页 Web 应用程序,我正在尝试向其添加 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');
问题是,当我在 statechange
事件处理程序中检索它时,我添加到 data
对象的任何函数都消失了。有没有我可以使用的解决方法,或者我是否必须有大量的 switch(State.data.page)
声明?
我最终重新设计了应用程序以支持 history.js。从长远来看,运行 无论如何,这将是更易于维护的选择。
我有一个单页 Web 应用程序,我正在尝试向其添加 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');
问题是,当我在 statechange
事件处理程序中检索它时,我添加到 data
对象的任何函数都消失了。有没有我可以使用的解决方法,或者我是否必须有大量的 switch(State.data.page)
声明?
我最终重新设计了应用程序以支持 history.js。从长远来看,运行 无论如何,这将是更易于维护的选择。