Для предотвращения бесконечного обновления страницы при добавлении get-параметров в URL можно выполнить следующие шаги:
1. Проверьте, есть ли уже параметр с таким именем в URL. Если да, то не добавляйте новый параметр и оставьте текущий URL без изменений.
2. Если параметр с таким именем отсутствует, добавьте новый параметр в URL.
Чтобы остановить бесконечное добавление параметра в URL при переходе и сохранить знак "?", можно произвести следующие действия:
1. Проверьте, есть ли уже знак "?" в URL. Если да, то считайте, что уже есть другие параметры, и добавляйте новые параметры с помощью знака "&" вместо "?". Например, URL "http://example.com/page?param1=value1" будет преобразовываться в "http://example.com/page?param1=value1¶m2=value2".
2. Если знак "?" отсутствует в URL, добавьте новый параметр с помощью знака "?". Например, URL "http://example.com/page" будет преобразовываться в "http://example.com/page?param1=value1".
Вот пример JavaScript-кода, выполняющего указанные действия:
```javascript
// Получение текущего URL
var url = window.location.href;
// Проверка наличия параметра в URL
if (url.indexOf('param1=') === -1) {
// Проверка наличия знака "?"
if (url.indexOf('?') === -1) {
// Добавление параметра с знаком "?"
url += '?param1=value1';
} else {
// Добавление параметра с знаком "&"
url += '¶m1=value1';
}
// Обновление URL страницы без перезагрузки
window.history.replaceState(null, '', url);
}
```
Необходимо заменить 'param1=value1' на нужное значение параметра. Этот код можно использовать для добавления одного или нескольких параметров.