我有以下代码来保存我的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参数末尾推迟这些新值来改变它。 –