Javascript 无法在history.js数据中包含函数

Javascript 无法在history.js数据中包含函数,javascript,history.js,Javascript,History.js,我有一个单页webapp,我正在尝试添加history.js支持。现在,无论用户在哪个屏幕上,URL都保持不变。我的计划是使用History.pushState()来更改URL,并包含一个函数,当执行该函数时,可以将应用程序从任何位置导航到新屏幕。以下是我所拥有的: History.Adapter.bind(window, 'statechange', function() { var State = History.getState(); console.log(State); S

我有一个单页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');

问题是,当我在
statechange
事件处理程序中检索
data
对象时,添加到该对象的任何函数都会消失。是否有一个解决方法可以使用,或者我必须有一个巨大的
开关(State.data.page)
语句?

我最终重新构建了应用程序以支持history.js。从长远来看,这将是一个更易于维护的选择