Передача GET-параметра в URL
Здравствуйте! Хочу реализовать следующее: когда я перезагружаю страницу вроде mysite.com, то нужно добавить параметр после URL, чтобы получить mysite.com/?value=key (в конец строки)
Уже дошел до проверки и такого кода: var key = '123'; var parameter = '?value=' + key; if ((window.location.href.indexOf(parameter) === -1) || (window.location.href.indexOf('?') === -1)) { window.location.href += parameter; } Однако как быть, если в параметре уже есть GET-запросы, разделенные вопросительным знаком. И если ссылка уже имеет другие параметры, например: mysite.com/?param=1&filter=3, можно ли передать мой параметр в конец ссылки? mysite.com/?param=1&filter=3&value=123, чтобы он разделялся не значком вопросительного знака, поскольку 2 знака выдадут ошибку, а знаком & Спасибо |
Цитата:
Цитата:
Но на ГЕТ параметры есть ограничение по размеру http://qaru.site/questions/18078/max...tp-get-request |
Мне нужно передавать параметр вида mysite.com/?value=123 если в ссылке нет других параметров и передавать со значком амперсанд если в ссылке уже есть другие параметры: mysite.com/?param=1&filter=3&value=123
Пробовал вот такое условие создать в цикле: <script> var key = '123'; var param1 = '?value=' + key; var param2 = '&value=' + key; if (window.location.href.indexOf('?') === -1) {window.location.href += param1;} else if (window.location.href.indexOf('&') === -1) {window.location.href += param2;} </script> Но тогда он сначала проверяет первое условие и создает ссылку mysite.com/?value=123, а потом еще добавляет после второй раз mysite.com/?value=123&value=123 |
Цитата:
|
Да вот и пытаюсь понять. Вообще по ссылке, что прислали, за это отвечает search
|
Цитата:
Цитата:
window.location.search=='' Параметров нет. Иначе они есть. Правда если search не "пусто" могут быть и другие варианты... Но отрабатывать их нужно именно в "ветке" где параметры есть. ;) |
<script> var key = '123'; var param1 = '?value=' + key; var param2 = '&value=' + key; if (window.location.search=='') {window.location.href += param1;} else {window.location.href += param2;} </script> Тут подставляется со знаком все ок, только они бесконечно http://prntscr.com/pcyd9e дальше добавляются автоматом и страница сама перезагружается. Как сделать только 1 раз? |
Есть у кого-нибудь идеи? Задача-то не очень простая...
|
Цитата:
|
(() => { const key = 'key'; const value = 'value'; const params = new URLSearchParams(window.location.search); if (params.get(key) !== value) { params.set(key, value); window.location.search = params.toString(); } })(); |
Часовой пояс GMT +3, время: 04:01. |