Junior
Como gerir a história do navegador em JavaScript, avançando e recuando?
sobes.tech IA
Resposta da IA
O objeto history fornece acesso ao histórico de sessões do navegador. Os principais métodos para gerir o histórico são:
history.back(): volta uma página no histórico.history.forward(): avança uma página no histórico.history.go(delta): move-se pelo número de passos especificado no histórico (deltapode ser negativo para voltar atrás).
Exemplo de uso:
// Voltar à página anterior
history.back();
// Ir para a próxima página
history.forward();
// Voltar duas páginas
history.go(-2);
// Avançar três páginas
history.go(3);
Além disso, o objeto history permite gerir o estado do histórico sem recarregar a página, usando os métodos pushState e replaceState.
history.pushState(state, title, url): adiciona um novo estado ao histórico da sessão.state: objeto de estado associado à entrada do histórico.title: título da página (a maioria dos navegadores ignora-o).url: URL associado à entrada do histórico.
history.replaceState(state, title, url): substitui o estado atual no histórico da sessão.
Exemplo com pushState:
// Adicionar um novo estado ao histórico
history.pushState({ page: 1 }, "Página 1", "/page1");
// Realizar ações na página sem recarregamento completo
// Quando o utilizador clicar no botão "voltar", o evento popstate será acionado
window.addEventListener('popstate', function(event) {
console.log('O estado mudou:', event.state); // { page: 1 }
// Atualizar o conteúdo da página de acordo com o estado
});
Exemplo com replaceState:
// Substituir o estado atual no histórico
history.replaceState({ tab: 'active' }, "Aba ativa", "/active-tab");
O evento popstate é acionado quando uma entrada do histórico de sessão é ativada.