Sto cercando di recuperare la posizione di scorrimento quando un utente torna indietro nella cronologia del browser utilizzando il gestore popstate HTML5.history pushState e scroll position
Ecco quello che ho:
$(document).ready(function() {
$(window).on('popstate', PopStateHandler);
$('#link').click(function (e) {
var stateData = {
path: window.location.href,
scrollTop: $(window).scrollTop()
};
window.history.pushState(stateData, 'title', 'page2.html');
e.preventDefault();
});
});
function PopStateHandler(e) {
alert('pop state fired');
var stateData = e.originalEvent.state;
if (stateData) {
//Get values:
alert('path: ' + stateData.path);
alert('scrollTop: ' + stateData.scrollTop);
}
}
<a id="link" href="page2.html"></a>
Se navigando indietro, sono in grado di recuperare i valori della stateData.
Suppongo che ciò sia dovuto al fatto che il popstate recupera i valori del caricamento iniziale della pagina e non lo stato che ho inviato alla cronologia quando è stato fatto clic sul collegamento ipertestuale.
Come posso ottenere la posizione di scorrimento sulla navigazione indietro?