2012-01-31 65 views
2

我试图使用History.js来跟踪用Javascript处理过的用户界面状态。其目的是,用户要回来的页面,他们离开时的状态(在访问其他网页中通过链接后系统)从其他页面的后退按钮加载History.js状态

为此,我绑定的事件popstate像这样:

History.Adapter.bind(window, 'popstate', function() { 
    console.log("Popstate"); 
    var History = window.History; 
    var State = History.getState(); 
    LoadState(State, true); 
}); 

在大多数浏览器中都可以正常工作,但仍然可以在页面中导航,但只有Chrome浏览器在从其他页面返回页面时似乎会触发事件。我也试过绑定statechange,但它似乎只触发页内导航,而不是“回载”页面。

我是否正确地假设回到页面时有触发事件的方法?如果是这样,怎么样?

回答

1

找到一个解决这个问题,这是通过声明history.navigationMode = 'compatible'

这使得准备事件触发也从另一个页面回去之后加载页面时。从那里开始,就可以像往常一样检索历史对象并加载它。

+0

这是否适用于Opera以外的浏览器?据我所知,只有Opera支持'navigationMode'属性。 – joanwolk 2012-07-12 13:09:27

+0

我从来没有在Opera中尝试过它,但它触发了我想要的Firefox和Chrome的行为。 – 2012-07-17 08:16:41

相关问题