2011-12-08 16 views
2

是否有一些我可以使用的技術(可能是巧妙的replaceState())更新歷史狀態對象而不是替換它?使用replaceState()(或其他)更新狀態對象而不是替換它

鑑於現有狀態對象,看起來像這樣:

{ prop1:someValue, prop2:someOtherValue } 

我希望能夠調用的東西,將修改prop1而是獨自離開prop2

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

如果我知道prop2的價值是什麼,那麼這將是微不足道的,但我不知道。 Firefox允許你直接閱讀history.state,所以我可以在Firefox上找到價值,並使用replaceState()。但是,這不適用於Chrome,Safari等。因爲(據我所知)他們不允許直接訪問history.state

有沒有辦法讓我修改狀態對象,如上所述?

回答

0

History.js允許,因爲Chrome的8

通過replaceState狀態操縱我現在有一個類似的問題在那裏只需要修改狀態的一部分。這是通過克隆當前狀態數據,更改值然後調用replaceState來完成的。

History.replaceState(newState, null, oldState.url); 
相關問題