Как изменить GET параметр в ссылке без обновления страницы

Я всегда не понимал, как на многих популярных платформах и интернет магазинах реализованы фильтры, и сейчас я столкнулся с надобностью самому реализовать такой поиск.

У меня на сайте при клике на чекбокс через ajax на сервер отправляется запрос и после в блок выводятся результаты поиска с примененным фильтром, однако по задумке после этого должен так же обновиться гет параметр в ссылке без обновления страницы, однако у меня нет идей как это сделать.


Ответы (1 шт):

Автор решения: Evgenii Izhboldin

Взято из ответа на основном stackoverflow

Вы можете использовать window.history.pushState

пример:

function processAjaxData(response, urlPath){ //После ajax вызвать
     document.getElementById("content").innerHTML = response.html;
     document.title = response.pageTitle;
     window.history.pushState({"html":response.html,"pageTitle":response.pageTitle},"", newUrlPath);
 }

И что бы определить нажатие на кнопку вперед/назад можно использовать событие window.onpopstate

window.onpopstate = function(e){
    if(e.state){
        document.getElementById("content").innerHTML = e.state.html;
        document.title = e.state.pageTitle;
    }
};

Подробнее можно здесь почитать

→ Ссылка