У меня есть этот URL:
site.fwx?position=1&archiveid=5000&columns=5&rows=20&sorting=ModifiedTimeAsc
мне нужно иметь возможность изменить значение параметра url «строки» на то, что я указываю, скажем, 10. И если «строк» не существует, мне нужно добавить его в конец URL и добавить значение, которое я уже указал (10).
javascript
url
query-string
url-parameters
url-parsing
Синдре Сорхус
источник
источник
Ответы:
Я расширил код Sujoy для создания функции.
Функциональные вызовы:
Обновленная версия, которая также заботится о якорях в URL.
источник
http://www.domain.com/index.php?action=my_action&view-all=Yes
и мне нужно изменить значение «view-all». Мой SO вопрос, который был закрыт: stackoverflow.com/questions/13025880/…Я думаю, что вы хотите плагин запроса .
Например:
Это будет работать независимо от текущего состояния строк.
источник
window.location.pathname
.Чтобы ответить на мой собственный вопрос 4 года спустя, после того, как многому научился. Тем более, что вы не должны использовать jQuery для всего. Я создал простой модуль, который может анализировать / структурировать строку запроса. Это позволяет легко изменить строку запроса.
Вы можете использовать строку запроса следующим образом:
источник
Быстрое небольшое решение в чистом js, никаких плагинов не требуется:
Назовите это так:
Или, если вы хотите остаться на той же странице и заменить несколько параметров:
редактировать, благодаря Люку: Чтобы удалить параметр целиком, передать
false
илиnull
для значения:replaceQueryParam('rows', false, params)
. Так как0
это тоже ложь , уточняйте'0'
.источник
Бен Алман имеет хороший плагин jquery querystring / url здесь , что позволяет манипулировать строку запроса легко.
Как просили -
Перейти на его тестовую страницу здесь
В firebug введите в консоль следующее
jQuery.param.querystring(window.location.href, 'a=3&newValue=100');
Он вернет вам следующую измененную строку URL
Обратите внимание, что значение строки запроса для a было изменено с X на 3 и добавлено новое значение.
Затем вы можете использовать новую строку URL-адреса по своему усмотрению, например, используя document.location = newUrl или изменить ссылку привязки и т. Д.
источник
TypeError: jQuery.param.querystring is not a function
jQuery.param.querystring
. Я думаю, они реорганизовали библиотеку.Современный подход к этому состоит в использовании нативного стандартного URLSearchParams . Он поддерживается всеми основными браузерами, кроме IE, где доступны полифиллы.
источник
site.fwx%3Fposition=1&archiveid=5000&columns=5&rows=10&sorting=ModifiedTimeAsc
непонятно, потому что это не то, что вы бы построили, если бы делали это вручную ...Вы можете сделать это через обычный JS также
источник
Это современный способ изменить параметры URL:
источник
Будет ли жизнеспособной альтернативой строковым манипуляциям настроить html
form
и просто изменить значениеrows
элемента?Итак,
html
что-то вродеСо следующим JavaScript для отправки формы
Вероятно, не подходит для всех ситуаций, но может быть лучше, чем анализ строки URL.
источник
Вы можете использовать эту мою библиотеку, чтобы сделать работу: https://github.com/Mikhus/jsurl
источник
Решение 2020 : устанавливает переменную или удаляет iti, если вы передаете
null
илиundefined
значение.источник
URLSearchParams
не работает в последних версиях всех основных браузеров (2020)Я написал небольшую вспомогательную функцию, которая работает с любым выбором. Все, что вам нужно сделать, это добавить класс "redirectOnChange" к любому элементу select, и это приведет к перезагрузке страницы с новым / измененным параметром строки запроса, равным id и значению select, например:
В приведенном выше примере будет добавлено «? MyValue = 222» или «? MyValue = 333» (или использование «&», если существуют другие параметры), и перезагрузите страницу.
JQuery:
источник
Здесь я взял ответ Адиля Малика и исправил 3 проблемы, которые я с ним идентифицировал.
источник
Вот что я делаю. Используя мою функцию editParams (), вы можете добавить, удалить или изменить любой параметр, а затем использовать встроенную функцию replaceState () для обновления URL:
источник
Мое решение:
Затем просто вызовите «setParams» и передайте объект с данными, которые вы хотите установить.
Пример:
В моем случае мне пришлось обновлять ввод html select при его изменении и, если значение равно «0», удалить параметр. Вы можете отредактировать функцию и удалить параметр из URL, если ключ объекта также имеет значение «null».
Надеюсь, это поможет вам
источник
Еще один вариант ответа Суйой. Просто изменили имена переменных и добавили оболочку пространства имен:
Использование сейчас:
источник
Я тоже написал библиотеку для получения и установки параметров запроса URL в JavaScript .
Вот пример его использования.
Получить параметры запроса в виде объекта, по ключу или добавить / изменить / удалить.
источник
Я искал то же самое и нашел: https://github.com/medialize/URI.js, что довольно приятно :)
-- Обновить
Я нашел лучший пакет: https://www.npmjs.org/package/qs, он также работает с массивами в параметрах get.
источник
Я знаю, что это старый вопрос. Я улучшил функцию выше, чтобы добавить или обновить параметры запроса. Все еще чисто решение JS только.
источник
моя функция поддерживает удаление параметров
источник
Я только что написал простой модуль для чтения и обновления текущих параметров запроса URL.
Пример использования:
Вот мой код с именем UrlParams. (JS / TS):
источник
источник