Ich habe den folgenden Code, um meine data
im aktuellen Seitenzustand zu speichern.Hinzufügen oder Hinzufügen neuer stateObject zum Verlauf
window.history.pushState({myData: data}, "RandomTitle", '#');
Aber jetzt möchte ich auch einen anderen Wert speichern, die scrollTop
ist. Und wenn ich
window.history.pushState({scrollTop: scrollTop}, "RandomTitle", '#');
Der obige Code wird die Geschichte Zustand mit dem neuen ersetzen und myData
verschwunden sein.
Die Frage, gibt es trotzdem kann ich scrollTop
hinzufügen, während es myData
in meinem historischen Zustand gibt? Oder ich muss es nur anfänglich wie,
window.history.pushState({myData: data, scrollTop: 0}, "RandomTitle", '#');
// To change the scrollTop in history state
window.history.state.scrollTop = $(window).scrollTop();
Ich denke, wenn es eine Funktion wie window.history.state.addObject
oder so etwas.
Vielen Dank für Ihre Antwort und BTW, Sie vermissen ein Koma nach 'Object.assign '. Jetzt, wenn ich diese Anweisung mehr als einmal ausführen, um meine 'scrollTop'- oder' myData'-Variablen im Verlaufsstatus zu ersetzen, funktioniert es nicht mehr. – choz
Rechts. Vielen Dank. Aktualisiert. –
Der Grund, warum es nicht funktionierte, liegt darin, dass der Wert des vorherigen Status Vorrang vor den neuen Werten hatte, die Sie hinzufügen wollten (d. H. Wenn der vorherige Status einen Wert enthielt, wurde dieser beibehalten). Ich habe es geändert, indem ich diese neuen Werte am Ende der 'Object.assign'-Argumente verschoben habe. –