Junior
Jak zarządzać historią przeglądarki w JavaScript, poruszając się do przodu i do tyłu?
sobes.tech AI
Odpowiedź od AI
Obiekt history zapewnia dostęp do historii sesji przeglądarki. Główne metody do zarządzania to:
history.back(): cofa o jedną stronę w historii.history.forward(): przesuwa o jedną stronę do przodu w historii.history.go(delta): przesuwa się o określoną liczbę kroków w historii (deltamoże być ujemne, aby cofnąć się).
Przykład użycia:
// Powrót do poprzedniej strony
history.back();
// Przejście do następnej strony
history.forward();
// Powrót o dwie strony
history.go(-2);
// Przejście o trzy strony do przodu
history.go(3);
Ponadto obiekt history pozwala zarządzać stanem historii bez przeładowania strony, korzystając z metod pushState i replaceState.
history.pushState(state, title, url): dodaje nowy stan do historii sesji.state: obiekt stanu powiązany z wpisem w historii.title: tytuł strony (większość przeglądarek go ignoruje).url: URL powiązany z wpisem w historii.
history.replaceState(state, title, url): zamienia obecny stan w historii sesji.
Przykład z pushState:
// Dodanie nowego stanu do historii
history.pushState({ page: 1 }, "Strona 1", "/page1");
// Dalsze działania na stronie bez pełnego przeładowania
// Po kliknięciu przycisku "wstecz" użytkownika, zostanie wywołane zdarzenie popstate
window.addEventListener('popstate', function(event) {
console.log('Stan się zmienił:', event.state); // { page: 1 }
// Aktualizacja zawartości strony zgodnie ze stanem
});
Przykład z replaceState:
// Zamiana obecnego stanu w historii
history.replaceState({ tab: 'active' }, "Aktywna zakładka", "/active-tab");
Zdarzenie popstate wywołuje się przy aktywacji wpisu w historii sesji.