Volte para a página anterior, independentemente das alterações na string de consulta
Tenho uma página com uma tabela pesquisável. Escrevi um botão "Voltar" para voltar à página anterior:
<a href="javascript:history.back()">Back</a>
Por exemplo, o URL da minha página inicial é:
https://xxxxxx.com
Eu entro na página com uma tabela pesquisável da minha página inicial (ou qualquer outra página) :
https://xxxxxx.com/data
Quando eu realizo uma pesquisa, o URL se torna:
https://xxxxxx.com/data?search=*sth*
Quando clico no botão "Voltar", o URL se torna:
https://xxxxxx.com/data
O que eu realmente quero é:
https://xxxxxx.com/
(Ou a página onde o usuário entra antes /data
)
Como posso reescrever meu javascript no botão de pesquisa, para que o botão Voltar possa acessar a página real?
Respostas
Em vez de history.back()
, que volta apenas um, você poderia fazer window.location.replace(window.location.host)
, que carrega a página raiz.
Para obter mais informações sobre window.location
:https://developer.mozilla.org/en-US/docs/Web/API/Window/location
Editar:
Se você deseja ignorar os parâmetros de URL, você precisa alterar a forma como vai para outra página.
Em vez de window.history.pushState(...)
, você deve usar window.history.replaceState(...)
, quando a navegação deve ser ignorada em um clique de volta.
Aqui está mais para ler sobre esse tópico: Qual é a relação entre o histórico empurrar e substituir?