data
を現在のページ状態に保存する次のコードがあります。ヒストリに新しい状態オブジェクトを追加または追加する方法
window.history.pushState({myData: data}, "RandomTitle", '#');
今、別の値であるscrollTop
も保存します。そして、私は
window.history.pushState({scrollTop: scrollTop}, "RandomTitle", '#');
を行う場合は上記のコードは、新しいものと履歴状態を置き換えますとmyData
が消えてしまいます。
私の覚えている状態にはmyData
がありますが、とにかく私はscrollTop
を追加できますか?または私はちょうどそれを設定する必要があり、最初はwindow.history.state.addObject
か何かのような機能があります場合、私は思っています、
window.history.pushState({myData: data, scrollTop: 0}, "RandomTitle", '#');
// To change the scrollTop in history state
window.history.state.scrollTop = $(window).scrollTop();
が好きです。
答えていただきありがとうございます.btw、Object.assign '。さて、このステートメントを複数回実行して、履歴状態の 'scrollTop'または' myData'変数を置き換えると、もう動作しません。 – choz
ありがとうございました。更新しました。 –
これは、前の状態の値が追加したい新しい値よりも優先されたためです(前の状態に値が含まれていた場合は、何があっても保持されていたためです)。私は 'Object.assign'引数の最後にこれらの新しい値を先送りして変更しました。 –