function deleteUrlParams(param) {
const params = {};
delete params[param];
let search = '?';
Object.keys(params).forEach((key) => {
search += `${key}=${params[key]}&`;
});
search = search.substring(0, search.length - 1);
const url = `${window.location.origin}${window.location.pathname}${search}`;
window.history.replaceState({}, null, url);
}
function getUrlParams(url) {
const newUrl = new URL(url || window.location.href);
const urlSearchParams = new URLSearchParams(newUrl.search);
const params = {};
for (const [key, value] of urlSearchParams) {
params[key] = value;
}
return params;
}
function getUrlParams(url) {
const newUrl = new URL(url || window.location.href);
const urlSearchParams = new URLSearchParams(newUrl.search);
const params = Object.fromEntries(urlSearchParams.entries());
return params;
}
function setUrlParams(url = '', params = {}) {
const newUrl = new URL(url || window.location.href);
const { origin, pathname, search } = newUrl;
const urlSearchParams = new URLSearchParams(search);
for (const item in params) {
urlSearchParams.set(item, params[item]);
}
return `${origin}${pathname}?${urlSearchParams.toString()}`;
}
npm install url-search-params-polyfill -- save
import 'url-search-params-polyfill';
const searchParams = new URLSearchParams(params);
const newParams = searchParams.toString();