我是否可以使用某些技术(可能是replaceState()
聪明的东西)来更新历史状态对象而不是替换它?
给定一个如下所示的状态对象:
{ prop1:someValue, prop2:someOtherValue }
我希望能够调用可修改prop1
的内容,但只留下prop2
。
我想我真的在寻找modifyState()
而不是replaceState()
。
如果我知道prop2
的价值是什么,这将是微不足道的,但我不知道。{1}}的价值。 Firefox允许您直接阅读history.state
,因此我可以在Firefox上找到值并使用replaceState()
。但是,这对Chrome,Safari等不起作用。因为(据我所知),他们不允许直接访问history.state
。
有没有办法让我修改状态对象,如上所述?
答案 0 :(得分:0)
History.js允许自Chrome 8以来通过replaceState进行状态操作。
我目前有一个类似的问题,只需要修改一部分州。这是通过克隆当前状态数据,更改值然后调用replaceState来实现的。
History.replaceState(newState, null, oldState.url);