我有以下代碼來保存我的data
當前頁面狀態。如何添加或追加新的stateObject到歷史記錄
window.history.pushState({myData: data}, "RandomTitle", '#');
但是現在,我想還保存另一個值,即scrollTop
。如果我做
window.history.pushState({scrollTop: scrollTop}, "RandomTitle", '#');
上面的代碼將與更換新的歷史狀態和myData
將不復存在。
問題是否有,無論如何,我可以添加scrollTop
而我的歷史狀態中有myData
?或者,我只是初始設置像,
window.history.pushState({myData: data, scrollTop: 0}, "RandomTitle", '#');
// To change the scrollTop in history state
window.history.state.scrollTop = $(window).scrollTop();
我在想,如果有喜歡window.history.state.addObject
什麼功能。
感謝您的回答,順便提一句,您在Object.assign之後錯過了昏迷'。現在,如果我碰巧不止一次運行這個語句,爲了替換歷史狀態中的'scrollTop'或'myData'變量,它不再起作用。 – choz
對。謝謝。更新。 –
它不工作的原因是因爲之前狀態的值優先於要添加的新值(即,如果以前的狀態包含值,則無論如何都保留它)。我通過在Object.assign參數末尾推遲這些新值來改變它。 –