Изменить URL в адресной строке после нажатия на элемент DOM с помощью javascript/jquery

Есть ли способ изменить URL в браузере без перезагрузки страницы после нажатия элемента DOM?

    $('#filter_form').on('change', function () {
        $.ajax(options);
        //change the browser URL
    });

Пример:

До: http://somepage.com/filters

После: http://somepage.com/filters?type=apartment

1 ответ

Решение

Да, это возможно с помощью API истории. И то и другое history.pushState а также history.replaceState Позвольте вам указать новый URL, например:

history.pushState(null, null, "filters?type=apartment");

URL разрешается обычным способом.

Поддержка браузера хороша, кроме IE9 и более ранних версий.

Другие вопросы по тегам