Я хочу написать фрагмент javascript, который добавит параметр к текущему URL-адресу, а затем обновит страницу - как я могу это сделать?
javascript
jquery
refresh
любитель
источник
источник
Ответы:
это должно работать (не проверено!)
источник
Короче принятого ответа, делается то же самое, но остается простым:
Нам не нужно изменять весь URL-адрес, только строку запроса, известную как атрибут поиска местоположения.
Когда вы присваиваете значение атрибуту поиска, браузер автоматически вставляет вопросительный знак и страница перезагружается.
источник
window.location.search = '?param=42';
Большинство ответов здесь предполагают, что нужно добавить параметр (ы) к URL-адресу, что-то вроде следующего фрагмента или аналогичного варианта:
Это будет хорошо работать в большинстве случаев.
тем не мение
На мой взгляд, это неправильный способ добавления параметра к URL-адресу.
Поскольку предлагаемый подход не проверяет, установлен ли параметр в URL-адресе, если не соблюдать осторожность, можно получить очень длинный URL-адрес с одним и тем же параметром, повторяющимся несколько раз. то есть:
здесь начинаются проблемы. Предлагаемый подход может создать и создаст очень длинный URL-адрес после нескольких обновлений страницы, что сделает URL-адрес недействительным. Перейдите по этой ссылке для получения дополнительной информации о длинных URL. Какова максимальная длина URL в разных браузерах?
Это мой предлагаемый подход:
С этой функцией нужно будет сделать следующее:
источник
if(window.location.search.indexOf('¶m=') == -1) {window.location.search += '¶m=1';}
indexOf
может внести в код ненужную сложность.источник
Более совместимая версия
источник
Пожалуйста, проверьте приведенный ниже код:
источник
Одно небольшое исправление ошибки для вдумчивого ответа @ yeyo выше.
Изменить:
var parameters = parser.search.split(/\?|&/);
Для того, чтобы:
var parameters = parser.search.split(/\?|&/);
источник
Попробуй это
источник
Также:
Всего лишь один лайнер с ответом Шломи можно использовать в букмарклетах
источник