document.referrer
w wielu przypadkach otrzymasz adres URL ostatniej strony, którą odwiedził użytkownik, jeśli dotarł do bieżącej strony poprzez kliknięcie linku (zamiast wpisywania bezpośrednio w pasku adresu lub, w niektórych przypadkach, wierzę, przesyłając formularz?). Określone przez DOM poziom 2 . Więcej tutaj.
window.history
umożliwia nawigację, ale nie ma dostępu do adresów URL w sesji ze względów bezpieczeństwa i prywatności. Jeśli dostępna była bardziej szczegółowa historia adresów URL, każda odwiedzana witryna mogłaby zobaczyć wszystkie inne witryny, w których byłaś.
Jeśli masz do czynienia ze stanem poruszania się po własnej witrynie, być może jest to mniej kruche i na pewno bardziej przydatne użycie jednej z normalnych technik zarządzania sesjami: danych cookie, parametrów adresu URL lub informacji o sesji po stronie serwera.
document.referrer
nie zawsze działa.$.cookie("previousUrl", window.location.href, {path:"/"});
.Jeśli chcesz przejść do poprzedniej strony bez znajomości adresu URL, możesz użyć nowego interfejsu API historii.
Ale nie można manipulować zawartością stosu historii w przeglądarce, która nie obsługuje interfejsu API historii HTML5
Aby uzyskać więcej informacji, zobacz dokument
źródło
document.referrer
nie jest taki sam jak rzeczywisty adres URL we wszystkich sytuacjach.Mam aplikację, w której muszę ustalić zestaw ramek z 2 ramkami. Jedna ramka jest znana, druga to strona, z której prowadzę link. Wydaje się, że
document.referrer
byłoby to idealne, ponieważ nie trzeba przekazywać rzeczywistej nazwy pliku do dokumentu zestawu ramek.Jeśli jednak później zmienisz stronę dolnej ramki, a następnie użyjesz
history.back()
jej, nie ładuje oryginalnej strony do dolnej ramki, zamiast tego ładuje się ponowniedocument.referrer
się ponownie, w wyniku czego zestaw ramek zniknął i wrócisz do pierwotnego okna początkowego.Zajęło mi to trochę czasu, aby to zrozumieć. Tak więc w tablicy historii
document.referrer
nie jest tylko adresem URL, najwyraźniej jest to również specyfikacja okna strony odsyłającej. Przynajmniej w tym momencie najlepiej to rozumiem.źródło
Jeśli piszesz aplikację internetową lub aplikację jednostronicową (SPA), w której routing odbywa się w aplikacji / przeglądarce, a nie w obie strony na serwerze, możesz wykonać następujące czynności:
Następnie na nowej trasie możesz wykonać następujące czynności, aby pobrać poprzedni adres URL:
źródło
Użytkownicy korzystający z Node.js i Express mogą ustawić sesyjny plik cookie, który zapamięta bieżący adres URL strony, umożliwiając w ten sposób sprawdzenie strony odsyłającej przy następnym ładowaniu strony. Oto przykład wykorzystujący
express-session
oprogramowanie pośrednie:Następnie możesz sprawdzić, czy istnieje plik cookie odsyłający, taki jak:
Nie zakładaj, że plik cookie strony odsyłającej zawsze istnieje w tej metodzie, ponieważ nie będzie dostępny w przypadkach, gdy poprzedni adres URL był inną witryną, sesja została wyczyszczona lub właśnie została utworzona (ładowanie strony po raz pierwszy).
źródło
document.referrer
spełnia twoje zadanie, ale nie działa dla wersji Internet Explorera wcześniejszych niż IE9.Będzie działał dla innych popularnych przeglądarek, takich jak Chrome, Mozilla, Opera, Safari itp.
źródło
Spowoduje to przejście do poprzednio odwiedzanego adresu URL.
źródło