Neste artigo você vai aprender a como remover parâmetros de URL sem recarregar a página com JavaScript, vem conferir!
Fala programador(a), beleza? Bora aprender mais sobre JavaScript!
Introdução
Ao desenvolver aplicativos da web, é comum adicionar e remover parâmetros de URL para refletir o estado da aplicação ou filtrar dados.
No entanto, algumas vezes, você pode querer remover parâmetros de URL sem recarregar a página.
Neste artigo, vamos mostrar como remover parâmetros de URL sem recarregar a página usando JavaScript.
Vamos abordar o conceito de manipulação do histórico do navegador e também como manipular a URL atual.
Entendendo a API do histórico do navegador
A API do histórico do navegador fornece uma maneira de manipular o histórico do navegador usando o objeto window.history
.
Ele permite adicionar, modificar e remover entradas do histórico do navegador sem a necessidade de recarregar a página.
A API do histórico é especialmente útil ao criar aplicativos da web de página única (SPA) que requerem navegação sem recarregar a página.
Método pushState e replaceState
Os principais métodos fornecidos pela API do histórico do navegador são pushState()
e replaceState()
.
O método pushState()
adiciona uma nova entrada ao histórico do navegador, enquanto o método replaceState()
modifica a entrada atual do histórico.
Ambos os métodos aceitam três argumentos:
- Um objeto de estado: um objeto JavaScript associado à nova entrada do histórico.
- Um título: um título para a nova entrada do histórico (atualmente ignorado pelos navegadores).
- Uma URL: a URL da nova entrada do histórico.
Como remover parâmetros de URL sem recarregar a página
Agora que entendemos a API do histórico do navegador, vamos ver como podemos usá-la para remover parâmetros de URL sem recarregar a página.
Para isso, usaremos o método replaceState()
.
Exemplo:
function removerParametrosDaURL(url) { // Criando um objeto URL a partir da URL fornecida const urlObj = new URL(url); // Removendo os parâmetros de pesquisa da URL urlObj.search = ''; // Atualizando a URL atual no histórico do navegador window.history.replaceState({}, '', urlObj.toString()); } // Exemplo de uso: removerParametrosDaURL(window.location.href);
Neste exemplo, criamos uma função chamada removerParametrosDaURL()
que aceita a URL como argumento.
A função cria um objeto URL
a partir da URL fornecida, remove os parâmetros de pesquisa e, em seguida, atualiza a URL atual no histórico do navegador usando o método replaceState()
.
Exemplo prático: Removendo parâmetros de URL específicos
Suponha que você queira remover apenas alguns parâmetros específicos da URL, e não todos.
Para isso, você pode modificar a função removerParametrosDaURL()
para aceitar uma lista de parâmetros a serem removidos.
function removerParametrosEspecificosDaURL(url, parametrosParaRemover) { // Criando um objeto URL a partir da URL fornecida const urlObj = new URL(url); // Iterando pelos parâmetros fornecidos e removendo-os da URL parametrosParaRemover.forEach((param) => { urlObj.searchParams.delete(param); }); // Atualizando a URL atual no histórico do navegador window.history.replaceState({}, '', urlObj.toString()); } // Exemplo de uso: removerParametrosEspecificosDaURL(window.location.href, ['param1', 'param2']);
Neste exemplo, modificamos a função `removerParametrosDaURL()` para aceitar uma lista de parâmetros a serem removidos.
A função cria um objeto `URL` a partir da URL fornecida, itera pelos parâmetros fornecidos e os remove usando o método `delete()` do objeto `searchParams`.
Em seguida, atualiza a URL atual no histórico do navegador usando o método `replaceState()`.
Cuidados e considerações
Embora a manipulação da URL usando a API do histórico do navegador seja poderosa, é importante ter algumas precauções em mente:
- A manipulação do histórico do navegador só é possível quando a URL atual e a nova URL compartilham o mesmo domínio. Isso ocorre devido às restrições de segurança impostas pelos navegadores para evitar ataques de falsificação de solicitações entre sites (CSRF).
- A manipulação do histórico do navegador pode afetar o comportamento do botão Voltar do navegador. Ao usar o método `pushState()`, você pode adicionar entradas adicionais ao histórico do navegador, o que pode resultar em uma experiência de navegação inesperada para o usuário. Por outro lado, o método `replaceState()` modifica a entrada atual do histórico e não afeta o comportamento do botão Voltar.
- Alguns navegadores mais antigos podem não suportar a API do histórico do navegador. Portanto, é importante verificar a compatibilidade do navegador e fornecer soluções alternativas, se necessário.
Quer aprender mais sobre React? Confira o vídeo abaixo:
Conclusão
Neste artigo, mostramos como remover parâmetros de URL sem recarregar a página usando JavaScript.
Abordamos o conceito de manipulação do histórico do navegador e como usar os métodos `pushState()` e `replaceState()` para modificar a URL atual.
Além disso, fornecemos exemplos práticos de como remover todos os parâmetros de URL ou apenas parâmetros específicos.
Ao usar essas técnicas, você pode melhorar a experiência do usuário em seu aplicativo da web e criar uma navegação mais eficiente.
Está buscando em evoluir como Programador? Confira o nossos cursos clicando aqui.
Nosso principal objetivo é tornar você um dev profissional que é capaz de resolver problemas de alta dificuldade e criar projetos complexos, através de uma metodologia planejada nos mínimos detalhes, após formar muitos outros desenvolvedores.
Cursos com vários projetos, exercícios, material apoio, comunidade de alunos e muito mais!