1
resposta

Como desabilitar os botões "voltar" e "avançar" do browser via JS ou Jquery??

Olá amigos.

Estou com um duvida que queria saber se alguém aqui ja passou por isso e saiba como resolver.

Eu queria desabilitar os botões "voltar" e "avançar" do browser via JS ou JQuery. Ja tentei alguns exemplos que achei na internet, mas nenhum funcionou 100%

Se não tiver como desabilitar os botões, queria ao menos limpar o histórico assim que qualquer tela de uma aplicação seja carregada.

O mais próximo que consegui foi:

  • tela 1 chama a tela 2

  • tela 2 volta para tela 1, mas assim que é carregada eu consigo desabilitar o botão avançar

    o código é este:

    window.history.pushState(null, "", window.location.href);
    window.onpopstate = function () {
         window.history.pushState(null, "", window.location.href);
    };

Queria ao menos conseguir desabilitar o botão "voltar" também.

Alguém pode ajudar??

1 resposta

Oi, Emanuel, tudo bem?

Desculpa a demora em te responder!

Desabilitar completamente os botões "voltar" e "avançar" do navegador não é possível usando apenas JavaScript ou jQuery. Esses botões são recursos nativos do navegador e estão fora do alcance de manipulação do código JavaScript.

No entanto, é possível trabalhar em torno disso e limitar o impacto que esses botões têm na sua aplicação. Para isso, podemos usar a abordagem que você mencionou usando window.history.pushState dessa forma, conseguimos evitar que o botão "voltar" seja usado para navegar de volta à tela anterior. Isso modifica o histórico do navegador, fazendo com que a tela atual seja a única entrada no histórico de navegação.

Ficaria assim:

window.addEventListener('popstate', function () {
  // Impedir que a página volte
  history.pushState(null, '', window.location.href);
});

Essa função será chamada sempre que o usuário pressionar o botão "voltar" do navegador e, em seguida, ela executará opushState novamente, impedindo a navegação.

Embora isso possa limitar a funcionalidade dos botões "voltar" e "avançar" do navegador, é importante observar que não é possível desabilitá-los completamente. Os usuários ainda podem usar atalhos de teclado, como Alt + Seta para a esquerda (voltar) e Alt + Seta para a direita (avançar), para navegar pelo histórico de qualquer maneira.

Limpar o histórico de navegação do navegador também não é algo que possa ser feito por código JavaScript. O histórico de navegação é um recurso controlado pelo próprio navegador e não está disponível para manipulação direta por meio de JavaScript.

Todavia, vale ressaltar que como é um assunto externo ao curso e que não tenho acesso ao cenário completo do projeto, outros testes terão de ser feitos a fim de obter o resultado esperado, mas espero que esta resposta seja um bom ponto de partida para a resolução do seu problema.

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!