Jak mogę przekierować użytkownika z jednej strony na drugą za pomocą jQuery lub czystego JavaScript?
javascript
jquery
redirect
venkatachalam
źródło
źródło
window.location
jest taki sam jakwindow.location.href
pod względem zachowania.window.location
zwraca obiekt. Jeśli.href
nie jest ustawiony,window.location
domyślnie zmienia się parametr.href
. Wniosek: użycie jednego z nich jest w porządku.Odpowiedzi:
Nie można po prostu przekierowywać za pomocą jQuery
jQuery nie jest konieczne i
window.location.replace(...)
najlepiej symuluje przekierowanie HTTP.window.location.replace(...)
jest lepsze niż używaniewindow.location.href
, ponieważreplace()
nie zachowuje strony źródłowej w historii sesji, co oznacza, że użytkownik nie utknie w niekończącym się fiasku z tyłu.Jeśli chcesz zasymulować komuś kliknięcie łącza, użyj
location.href
Jeśli chcesz zasymulować przekierowanie HTTP, użyj
location.replace
Na przykład:
źródło
$(location).attr('href',url);
.window.location.href
wydaje się mieć niestałe zachowanie w niektórych przeglądarkach, w rzeczywistości to zupełnie nie działa w mojej wersji Firefox. Słyszałem, że ustawieniewindow.location
bezpośrednio nie działa w wersjach IE.OSTRZEŻENIE: Ta odpowiedź została jedynie podana jako możliwe rozwiązanie; to oczywiście nie jest najlepszym rozwiązaniem, ponieważ wymaga jQuery. Zamiast tego preferuj czyste rozwiązanie JavaScript.
źródło
window.location
nie jest elementem i dlatego nie ma atrybutów..attr()
.setAttribute()
Standardowy „waniliowy” sposób JavaScript na przekierowanie strony
Lub prościej: (ponieważ
window
jest globalny)Poniższa sekcja jest przeznaczona dla osób używających
HTTP_REFERER
jednego z wielu środków bezpieczeństwa (chociaż nie jest to świetny środek ochronny). Jeśli korzystasz z przeglądarki Internet Explorer 8 lub nowszej, zmienne te gubią się podczas korzystania z dowolnej formy przekierowania strony JavaScript (location.href itp.).Poniżej zaimplementujemy alternatywę dla IE8 i niższych, aby nie stracić HTTP_REFERER. W przeciwnym razie możesz prawie zawsze po prostu użyć
window.location.href
.Testowanie
HTTP_REFERER
(wklejanie adresów URL, sesja itp.) Może pomóc stwierdzić, czy żądanie jest uzasadnione. ( Uwaga: istnieją również sposoby obejścia / sfałszowania tych stron odsyłających, jak zauważa link droopa w komentarzach)Proste rozwiązanie do testowania w różnych przeglądarkach (powrót do window.location.href dla Internet Explorer 9+ i wszystkich innych przeglądarek)
Stosowanie:
redirect('anotherpage.aspx');
źródło
location.assign
? Używam w mojej aplikacji z IE8 i nie tracęHTTP_REFERER
nagłówka.Jest na to wiele sposobów.
źródło
window.navigate
jest tylko w starszej wersji IE (Firefox / Chrome nie obsługuje tego). Jeśli chcesz wymienić wszystkie opcje, nie zapomnij odocument.location
.Działa to dla każdej przeglądarki:
źródło
document.location.replace(redirectURL)
jeśli nie chcesz, aby pierwsza strona była w historii przeglądarkiPomogłoby to, gdybyś był nieco bardziej opisowy w tym, co próbujesz zrobić. Jeśli próbujesz wygenerować dane stronicowane, istnieje kilka opcji, w jaki sposób to zrobić. Możesz wygenerować osobne linki dla każdej strony, do której chcesz mieć bezpośredni dostęp.
Zauważ, że bieżąca strona w przykładzie jest obsługiwana inaczej w kodzie i CSS.
Jeśli chcesz, aby dane stronicowane były zmieniane za pomocą AJAX, tutaj wkraczałby jQuery. To, co zrobiłbyś, to dodać moduł obsługi kliknięć do każdego z tagów zakotwiczenia odpowiadających innej stronie. Ten moduł obsługi kliknięć wywołałby kod jQuery, który przechodzi i pobiera następną stronę za pośrednictwem AJAX i aktualizuje tabelę o nowe dane. Poniższy przykład zakłada, że masz usługę internetową, która zwraca dane nowej strony.
źródło
Myślę też, że
location.replace(URL)
to najlepszy sposób, ale jeśli chcesz powiadomić wyszukiwarki o twoim przekierowaniu (nie analizują kodu JavaScript, aby zobaczyć przekierowanie), powinieneś dodaćrel="canonical"
metatag na swojej stronie.Dobrym rozwiązaniem jest także dodanie sekcji noscript z metatagem odświeżania HTML. Sugeruję, aby użyć tego narzędzia do przekierowywania JavaScript do tworzenia przekierowań. Obsługuje także przeglądarkę Internet Explorer, aby przekazać odnośnik HTTP.
Przykładowy kod wygląda następująco:
źródło
Ale jeśli ktoś chce przekierować z powrotem na stronę główną, może użyć następującego fragmentu kodu.
Byłoby pomocne, jeśli masz trzy różne środowiska: programowanie, tworzenie scenariuszy i produkcja.
Możesz eksplorować to okno lub obiekt window.location, po prostu umieszczając te słowa w konsoli Chrome lub konsoli Firebug .
źródło
window.location = '/'
JavaScript zapewnia wiele metod pobierania i zmiany bieżącego adresu URL wyświetlanego na pasku adresu przeglądarki. Wszystkie te metody wykorzystują obiekt Location, który jest własnością obiektu Window. Możesz utworzyć nowy obiekt lokalizacji, który ma bieżący adres URL w następujący sposób.
Podstawowa struktura adresu URL
Protokół - określa nazwę protokołu używaną do uzyskania dostępu do zasobu w Internecie. (HTTP (bez SSL) lub HTTPS (z SSL))
nazwa hosta - nazwa hosta określa hosta, który jest właścicielem zasobu. Na przykład www.stackoverflow.com. Serwer świadczy usługi przy użyciu nazwy hosta.
port - numer portu używany do rozpoznania określonego procesu, do którego ma zostać przekazany Internet lub inna wiadomość sieciowa, gdy dotrze na serwer.
nazwa ścieżki - ścieżka zawiera informacje o konkretnym zasobie na hoście, do którego klient sieciowy chce uzyskać dostęp. Na przykład stackoverflow.com/index.html.
zapytanie - ciąg zapytania podąża za komponentem ścieżki i zawiera ciąg informacji, które zasób może wykorzystać do określonego celu (na przykład jako parametry wyszukiwania lub dane do przetworzenia).
hash - zakotwiczona część adresu URL zawiera znak skrótu (#).
Dzięki tym właściwościom obiektu Lokalizacja możesz uzyskać dostęp do wszystkich tych składników adresu URL
Teraz Jeśli chcesz zmienić stronę lub przekierować użytkownika na inną stronę, możesz użyć
href
właściwości obiektu Lokalizacja w ten sposóbMożesz użyć właściwości href obiektu Location.
Obiekt lokalizacji ma również te trzy metody
Możesz użyć metody replace () i zamień również, aby przekierować na inne strony takie jak te
Czym różnią się przypisania () i replace () - Różnica między metodą replace () a metodą replace () polega na tym, że replace () usuwa adres URL bieżącego dokumentu z historii dokumentu, co oznacza, że nie można go użyć przycisk „wstecz”, aby przejść z powrotem do oryginalnego dokumentu. Dlatego użyj metody assign (), jeśli chcesz załadować nowy dokument, i chcesz dać możliwość powrotu do oryginalnego dokumentu.
Możesz zmienić właściwość href obiektu lokalizacji za pomocą jQuery również w ten sposób
I dlatego możesz przekierować użytkownika do innego adresu URL.
źródło
Zasadniczo jQuery jest po prostu strukturą JavaScript i do robienia takich rzeczy jak przekierowanie w tym przypadku, możesz po prostu użyć czystego JavaScript, więc w tym przypadku masz 3 opcje za pomocą waniliowego JavaScript:
1) Korzystanie z funkcji zamiany lokalizacji spowoduje zastąpienie bieżącej historii strony, co oznacza, że nie można użyć przycisku Wstecz , aby wrócić do oryginalnej strony.
2) Przy użyciu przypisania lokalizacji spowoduje to zachowanie historii, a za pomocą przycisku Wstecz możesz wrócić do oryginalnej strony:
3) Zalecam korzystanie z jednego z poprzednich sposobów, ale może to być trzecia opcja z użyciem czystego JavaScript:
Możesz także napisać funkcję do obsługi jQuery, ale nie jest to zalecane, ponieważ jest to tylko jedna linia czysta funkcja JavaScript, możesz także użyć wszystkich powyższych funkcji bez okna, jeśli jesteś już w zakresie okna, na przykład
window.location.replace("http://stackoverflow.com");
może to byćlocation.replace("http://stackoverflow.com");
Pokazuję je również na poniższym obrazku:
źródło
assign()
ciąguhref=
zbyt jak ten ostatni nie działać prawidłowo dla mnie w niektórych przypadkach.Powinien być w stanie ustawić za pomocą
window.location
.Przykład:
Oto poprzedni post na ten temat: Jak przekierować na inną stronę internetową?
źródło
Zanim zacznę, jQuery jest biblioteką JavaScript używaną do manipulacji DOM. Dlatego nie powinieneś używać jQuery do przekierowania strony.
Cytat z Jquery.com:
Znaleziono go tutaj: https://jquery.com/browser-support/
Zatem jQuery nie jest kompletnym rozwiązaniem zapewniającym kompatybilność wsteczną.
Poniższe rozwiązanie wykorzystujące surowy JavaScript działa we wszystkich przeglądarkach i od dawna jest standardem, więc nie potrzebujesz żadnych bibliotek do obsługi wielu przeglądarek.
Ta strona przekieruje do Google po 3000 milisekundach
Różne opcje są następujące:
Podczas korzystania z zastąpienia przycisk Wstecz nie wróci do strony przekierowania, tak jakby nigdy nie był w historii. Jeśli chcesz, aby użytkownik mógł wrócić do strony przekierowania, użyj
window.location.href
lubwindow.location.assign
. Jeśli skorzystasz z opcji, która pozwala użytkownikowi wrócić do strony przekierowania, pamiętaj, że po wejściu na stronę przekierowania przekieruje cię z powrotem. Weź to pod uwagę, wybierając opcję przekierowania. W warunkach, w których strona przekierowuje tylko wtedy, gdy użytkownik wykona czynność, umieszczenie strony w historii przycisku Wstecz będzie w porządku. Ale jeśli strona automatycznie przekierowuje, powinieneś użyć metody zastępowania, aby użytkownik mógł użyć przycisku Wstecz bez zmuszania do powrotu na stronę, którą wysyła przekierowanie.Możesz także użyć metadanych, aby uruchomić przekierowanie strony w następujący sposób.
META Odśwież
Lokalizacja META
BASE Hijacking
Na tej stronie można znaleźć wiele innych metod przekierowywania niczego niepodejrzewającego klienta na stronę, na którą mogą nie chcieć iść (żadna z nich nie jest zależna od jQuery):
Chciałbym również zauważyć, że ludzie nie lubią być losowo przekierowywani. Przekierowuj osoby tylko wtedy, gdy są absolutnie potrzebne. Jeśli zaczniesz przekierowywać ludzi losowo, nigdy więcej nie wejdą na Twoją stronę.
Następny akapit jest hipotetyczny:
Możesz również zostać zgłoszony jako złośliwa strona. Jeśli tak się stanie, to gdy użytkownicy klikną link do Twojej witryny, przeglądarka użytkowników może ostrzec ich, że witryna jest złośliwa. Może się również zdarzyć, że wyszukiwarki mogą zacząć obniżać Twoją ocenę, jeśli ludzie zgłaszają złe wrażenia z Twojej witryny.
Przeczytaj Wskazówki Google dla webmasterów na temat przekierowań: https://support.google.com/webmasters/answer/2721217?hl=pl&ref_topic=6001971
Oto fajna mała strona, która wykopuje cię ze strony.
Jeśli połączysz dwa przykłady stron razem, uzyskasz pętlę przekierowań dla niemowląt, która zagwarantuje, że użytkownik nigdy nie będzie chciał ponownie korzystać z Twojej witryny.
źródło
źródło
Możesz to zrobić bez jQuery jako:
A jeśli chcesz tylko jQuery, możesz to zrobić w następujący sposób:
źródło
Działa to z jQuery:
źródło
window.location
# Przekierowanie strony HTML za pomocą jQuery / JavaScript
Wypróbuj ten przykładowy kod:
Jeśli chcesz podać pełny adres URL jako
window.location = "www.google.co.in";
.źródło
Musisz wstawić ten wiersz do swojego kodu:
Jeśli nie masz jQuery, użyj JavaScript:
źródło
Oryginalne pytanie: „Jak przekierować za pomocą jQuery?”, Stąd odpowiedź implementuje jQuery >> Przypadek użycia bezpłatnego.
Aby po prostu przekierować na stronę z JavaScript:
Lub jeśli potrzebujesz opóźnienia:
jQuery pozwala z łatwością wybierać elementy ze strony internetowej. Na stronie możesz znaleźć wszystko, co chcesz, a następnie użyć jQuery, aby dodać efekty specjalne, zareagować na działania użytkownika lub pokazać i ukryć zawartość wewnątrz lub na zewnątrz wybranego elementu. Wszystkie te zadania zaczynają się od umiejętności wyboru elementu lub zdarzenia .
Wyobraź sobie, że ktoś napisał skrypt / wtyczkę z 10000 liniami kodu. Dzięki jQuery możesz połączyć się z tym kodem za pomocą jednej lub dwóch linii.
źródło
Pytanie brzmi: jak zrobić stronę przekierowującą, a nie jak przekierować na stronę internetową?
W tym celu wystarczy użyć JavaScript. Oto mały kod, który utworzy stronę z dynamicznym przekierowaniem.
Powiedzmy, że po prostu umieściłeś ten fragment w
redirect/index.html
pliku na swojej stronie, możesz go tak wykorzystać.A jeśli przejdziesz do tego linku, automatycznie przekieruje Cię do stackoverflow.com .
I tak powstaje prosta strona przekierowująca z JavaScript
Edytować:
Należy również zwrócić uwagę na jedną rzecz. Dodałem
window.location.replace
swój kod, ponieważ uważam, że pasuje on do strony przekierowującej, ale musisz wiedzieć, że podczas korzystania zwindow.location.replace
przekierowania, gdy naciśniesz przycisk Wstecz w przeglądarce, nie wróci on do strony przekierowującej i będzie wróć do poprzedniej strony, spójrz na to małe demo.Przykład:
Jeśli więc odpowiada to Twoim potrzebom, wszystko powinno być w porządku. Jeśli chcesz dołączyć stronę przekierowania do historii przeglądarki, zamień to
z
źródło
W funkcji kliknięcia wystarczy dodać:
źródło
Spróbuj tego:
Fragment kodu przykładu .
źródło
jQuery nie jest potrzebny. Możesz to zrobić:
To takie proste!
Najlepszym sposobem na zainicjowanie żądania HTTP jest użycie
document.loacation.href.replace('URL')
.źródło
Najpierw napisz poprawnie. Chcesz nawigować w aplikacji w poszukiwaniu innego linku z aplikacji w celu uzyskania innego linku. Oto kod:
A jeśli chcesz poruszać się po stronach aplikacji, mam również kod, jeśli chcesz.
źródło
Możesz przekierować w jQuery w następujący sposób:
źródło
W JavaScript i jQuery możemy użyć następującego kodu, aby przekierować jedną stronę na inną stronę:
źródło
ECMAScript 6 + jQuery, 85 bajtów
Proszę, nie zabijaj mnie, to żart. To żart. To jest żart.
To „dostarczyło odpowiedź na pytanie” w tym sensie, że poprosiło o rozwiązanie „za pomocą jQuery”, które w tym przypadku pociąga za sobą w jakiś sposób wymuszenie tego równania.
Ferrybig najwyraźniej potrzebuje wyjaśnionego dowcipu (wciąż żartuję, jestem pewien, że w formularzu recenzji są ograniczone opcje), więc bez zbędnych ceregieli:
Inne odpowiedzi używają jQuery
attr()
nalocation
lubwindow
niepotrzebnie obiektach .Ta odpowiedź również ją nadużywa, ale w bardziej absurdalny sposób. Zamiast używać go do ustawiania lokalizacji, używa tego
attr()
do pobrania funkcji, która ustawia lokalizację.Funkcja jest nazywana,
jQueryCode
nawet jeśli nie ma w niej nic jQuery, a wywoływanie funkcjisomethingCode
jest po prostu okropne, szczególnie gdy coś nie jest nawet językiem.„85 bajtów” odnosi się do Code Golf. Gra w golfa oczywiście nie jest czymś, co powinieneś robić poza golfem kodowanym, a ponadto ta odpowiedź nie jest tak naprawdę golfem.
Zasadniczo kulenie.
źródło
JavaScript:
Jquery:
źródło
Za pomocą JavaScript:
Metoda 1:
Metoda 2:
Korzystanie z jQuery:
Metoda 1: $ (lokalizacja)
Metoda 2: Funkcja wielokrotnego użytku
źródło
Oto przekierowanie z opóźnieniem czasowym. Możesz ustawić czas opóźnienia na cokolwiek chcesz:
źródło
Istnieją trzy główne sposoby, aby to zrobić,
i...
Ostatni jest najlepszy dla tradycyjnego przekierowania, ponieważ nie zapisze strony, na której byłeś przed przekierowaniem w historii wyszukiwania. Jeśli jednak chcesz otworzyć kartę z JavaScriptem, możesz skorzystać z dowolnego z powyższych. 1
EDYCJA:
window
Prefiks jest opcjonalny.źródło