Tengo una página con una URL similar a domain.com/?a=1&b=2&.... Me gustaría actualizar la página pero poder cambiar cualquiera de los valores de cadena de consulta dados o agregarlo si aún no está allí.

Es decir. Si quisiera b=5 tanto /?a=1 como /?a=1&b=2 se convertirían en /?a=1&b=5

Creo que necesito usar la clase URLSearchParams para configurar la cadena de consulta y redirigir (en lugar de actualizar) a la nueva URL, pero tengo problemas para encontrar la forma de combinar todas las partes para crear la URL.

0
cebo 20 oct. 2020 a las 00:48

1 respuesta

La mejor respuesta

Si lo entiendo correctamente, tiene una página con una URL como /?a=1&b=2 y desea navegar a /?a=1&b=5 usando JavaScript.

// grab the search query, parse it into a `URLSearchParams` set
const queryData = new URLSearchParam(window.location.search.slice(1))

// manipulate the parameters as desired
queryData.set("b", 5)

// assemble the new URL using the current URL as the base
const newUrl = new URL(window.location.href)
newUrl.search = queryData

// redirect to the new URL
window.location.href = newUrl
1
coreyward 19 oct. 2020 a las 22:15