Oto 2018 aktualizacja, która jest nieco bardziej dynamiczny .
Jeśli chcesz pobrać URL, wyciągnij kotwicę z adresu URL i przenieś stronę do tej kotwicy, możesz uruchomić javascript przy ładowaniu strony.
if (window.location.href.indexOf('#') == 0) {
let hash = window.location.href.split('#')[1];
let hashTop = document.querySelector(`#${hash}`).offsetTop;
window.scrollTop = hashTop;
}
Istnieje również ten sposób, który jest nieco bardziej zwięzły.
if (location.hash) {
let target = location.hash;
window.scrollTop = document.querySelector(target).offsetTop;
}
Jeśli nie kompilacji ES6 z babel, wystarczy zmienić słowo kluczowe let
do var
. Działa to również w przypadku WordPress, które doda slash w adresie URL przed zakotwiczeniem.
Dziękuję bardzo! Potrzebowałem sposobu na ustawienie kotwicy w adresie URL Twig, aby przejść do określonego miejsca na stronie, jeśli zostanie zgłoszony wyjątek. Nie można tego zrobić, więc zamiast tego wstawiam zmienną twig do znacznika body i ustawię ją na pusty ciąg. Następnie, jeśli wyjątek zostanie zgłoszony, zapełniam zmienną łańcuchową javascriptem, jak pokazano w Twojej odpowiedzi (window.location.hash = "foo"), i dodasz ją do renderowania strony:
. – paidforbychrist