Volte para a página anterior, independentemente das alterações na string de consulta

Aug 17 2020

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

3 MauriceNino Aug 17 2020 at 15:36

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?