Как поменять url в адресной строке браузера с помощью js?
Допустим клиент находится на странице интернет-магазина
https://site.ru/product-category/kriuchki/?search=&price_min=0&price_max=1051&page=2
Необходимо, чтобы когда он выбирал другой тип сортировки товаров на странице, его кидало на первую страницу каталога. Как я могу убрать page=2 и перезагрузить страницу?
Ответы (2 шт):
Убрать можно через обработку адреса как строки (но рекомендую посмотреть в сторону парсеров), пример:
let url = 'https://site.ru/product-category/kriuchki/?search=&price_min=0&price_max=1051&page=2';
console.log(url.replace(/&page=\d+/, ''));
Страница будет перезагружена при изменении window.location.href
Полный пример:
let url = window.location.href;
window.location.href = url.replace(/&page=\d+/, '');
Если фильтр из себя представляет простую форму с GET-запросом, то можно внедрить в него поле со значением текущей страницы. При изменении параметров фильтра просто устанавливать значение этого поля как 1
document.querySelectorAll('.filter__field').forEach((input)=>{
input.addEventListener('input',(e)=>{
input.form.elements.page.value = 1;
})
})
<form action="" class="filter">
<input type="number" name="price_min" class="filter__field" placeholder="Цена от" min="0" max="100">
<input type="number" name="price_max" class="filter__field" placeholder="Цена до" min="1" max="100">
<input type="hidden" name="page" value="2">
<button>Применить фильтр</button>
</form>