01 сентября 2021 07 сентября 2021 JavaScript
Когда необходимо обработать query_string из урла с помощью JS то самый простой и экономный вариант использовать URLSearchParams и reduce следующим образом
// распасить урл
const searchParams = new URLSearchParams(window.location.search.substring(1));
// преобразовать в обычный Объект
const params = [...searchParams.entries()].reduce((acm, x) => {return {...acm, [x[0]]: x[1] }}, {});
константа params будет содержать словарь с данными из запроса (исключая дубли)
Может статься так, что потребуется передать строку больше чем 2048 байт, в таком случае использовать window.location.search не получится из-за ограничений GET запроса протокола HTTP.
Но можно воспользоваться дополнение window.location.hash это строка Хеш идущая после символа #
в таком случае чуть в код добавляет маленькая вставка
const searchParams1 = new URLSearchParams(
window.location.search.substring(1) + '&' + window.location.hash.substring(1)
);
const args = [...searchParams1.entries()].reduce(
(akm, x) => ({ ...akm, ...Object.fromEntries([x]) }), {},
);