Hay algunos pasos necesarios para hacer esto. Primero necesita convertir la cadena de consulta en un objeto. Una búsqueda rápida en Google me llevó a esta respuesta sobre el desbordamiento de la pila:
consulta window.location.search como JSON
función searchToObject () {
var pares = window.location.search.substring (1) .split (“&”),
obj = {},
par,
yo;
- ¿Cómo podríamos crear un sistema de menú personalizado para WordPress?
- ¿Cuál es la diferencia entre Rails (Ruby on Rails) y otros marcos de aplicaciones web?
- ¿Qué es ayudante en Laravel?
- Cómo hacer un sitio web virtual
- Cómo ver tablas de bases de datos en MySQL
para (i en pares) {
if (pares [i] === “”) continuar;
par = pares [i] .split (“=”);
obj [decodeURIComponent (par [0])] = decodeURIComponent (par [1]);
}
volver obj;
}
función serializar (obj) {
var str = [];
para (var p en obj)
if (obj.hasOwnProperty (p)) {
str.push (encodeURIComponent (p) + “=” + encodeURIComponent (obj [p]));
}
return str.join (“&”);
}
Entonces, llame para obtener los parámetros, luego elimine el parámetro que desea eliminar, cree la nueva URL con una función de serialización y empújela en la pila del historial. De esa manera, cambia la URL sin volver a cargar la página.
var params = searchToObject ();
eliminar params.a
var ruta = window.location.pathname +? + serializar (params);
history.pushState ({}, document.title, ruta);