Tengo una página de búsqueda con filtro. Cuando el usuario cambia los valores del filtro, agrego parámetros a la URL para evitar los valores si el usuario actualizó la página
q = $('#form input[name=q]').val(), srchtype= $('#filter input[name=srchtype]:checked').val(), sortBy = $('#filter select#sortBy').val(), parameters = "q="+qVal+"&srchType="+srchType+"&sortBy="+sortBy; history.pushState(null, null, '?'+parameters);luego obtengo los datos usando Ajax
$.ajax({ type: "POST", url: url, data: parameters+"&_token="+_token }).done(data => { // Javascript Code });El problema es que cuando el usuario hace clic en el botón Atrás del navegador, la URL cambiará a la anterior, pero los datos de la página no cambiarán.
Probé y funciona :D
history.replaceState($('body').html(), null) // store the first body html q = $('#form input[name=q]').val(), srchtype= $('#filter input[name=srchtype]:checked').val(), sortBy = $('#filter select#sortBy').val(), parameters = "q="+qVal+"&srchType="+srchType+"&sortBy="+sortBy; $.ajax({ type: "POST", url: url, data: parameters }).done(data => { // Javascript Code history.pushState($('body').html(), null, '?'+parameters); // store the next body html and url });