使用replaceState()(或其他)来更新状态对象而不是替换它

时间:2011-12-08 16:47:36

标签: javascript html5 browser-history

我是否可以使用某些技术(可能是replaceState()聪明的东西)来更新历史状态对象而不是替换它?

给定一个如下所示的状态对象:

{ prop1:someValue, prop2:someOtherValue }

我希望能够调用可修改prop1的内容,但只留下prop2

我想我真的在寻找modifyState()而不是replaceState()

如果我知道prop2的价值是什么,这将是微不足道的,但我不知道。{1}}的价值。 Firefox允许您直接阅读history.state,因此我可以在Firefox上找到值并使用replaceState()。但是,这对Chrome,Safari等不起作用。因为(据我所知),他们不允许直接访问history.state

有没有办法让我修改状态对象,如上所述?

1 个答案:

答案 0 :(得分:0)

History.js允许自Chrome 8以来通过replaceState进行状态操作。

我目前有一个类似的问题,只需要修改一部分州。这是通过克隆当前状态数据,更改值然后调用replaceState来实现的。

History.replaceState(newState, null, oldState.url);