58 Pytanie: Jak przekierować na inną stronę internetową?

pytanie utworzone w Tue, Feb 6, 2018 12:00 AM

Jak mogę przekierować użytkownika z jednej strony na drugą za pomocą jQuery lub czystego JavaScript?

    
7729
  1. Ciągle widzę zarówno window.location = url; i window.location.href = url; Czym się różnią? Czy oni są? BTW, nie wiedziałem o window.location.replace (url). Ładnie.
    2012-06-07 14: 24: 45Z
  2. window.location jest taki sam jak window.location.href pod względem zachowania. window.location zwraca obiekt. Jeśli .href nie jest ustawiony, window.location domyślnie zmienia parametr .href. Wniosek: Użyj jednego z nich jest w porządku.
    2012-08-07 07: 03: 58Z
  3. var url = "website name" $​​(location) .attr ('href', url);
    2013-02-18 11: 30: 19Z
  4. @ MadScientist To jest wsteczny sposób, aby to zrobić. Obiekt lokalizacji nie jest elementem HTML i użycie obiektu jquery do jego ustawienia wydaje się błędne. Dlaczego użyłbyś tego, gdy prosty kod JS jest tak prosty?
    2013-11-26 20: 25: 46Z
  5. Dlaczego chcesz przekierować? Formularz logowania nie powinien być przesyłany? A nawet jeśli na stronie docelowej nie ma logiki, nadal będziesz mógł przesłać formularz na inną stronę.
    2014-02-16 14: 45: 44Z
30 odpowiedzi                              30                         

Nie wystarczy po prostu przekierować za pomocą jQuery

jQuery nie jest konieczne i window.location.replace(...) najlepiej symuluje przekierowanie HTTP.

window.location.replace(...) jest lepszy niż window.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 przycisku wstecznego.

Jeśli chcesz symulować kliknięcie linku, użyj  location.href

Jeśli chcesz symulować przekierowanie HTTP, użyj location.replace

Na przykład:

// similar behavior as an HTTP redirect
window.location.replace("http://stackoverflow.com");

// similar behavior as clicking on a link
window.location.href = "http://stackoverflow.com";
    
14059
2019-05-19 13: 36: 05Z
  1. w przypadku przycisku przesyłania dodaj return false; także wewnątrz twojej funkcji
    2012-04-19 11: 52: 02Z
  2. Pytanie dotyczy w szczególności javascript, ale może być warte odnotowania, że ​​meta odświeżanie może być użyte jako powrót w przypadku, gdy użytkownik ma wyłączony javascript
    2013-01-24 00: 51: 34Z
  3. @ NicolòMartini If (IE) document.write ("");
    2013-06-07 13: 28: 29Z
  4. Jeśli korzystasz już z jQuery, użyj $(location).attr('href',url);. window.location.href wydaje się mieć niestabilne zachowanie w niektórych przeglądarkach, w rzeczywistości nie działa w mojej wersji Firefoksa. Słyszałem, że ustawienie window.location nie działa bezpośrednio w wersjach IE.
    2015-01-28 22: 34: 13Z
  5. "is better" powinno zostać usunięte. Jak stwierdzono w dalszej części odpowiedzi, najlepszym rozwiązaniem jest sytuacja. OP nie pyta „jak mogę emulować przekierowanie HTTP za pomocą Javascript ...”
    2017-03-23 ​​15: 35: 45Z

OSTRZEŻENIE: ta odpowiedź została podana jedynie jako możliwe rozwiązanie; jest oczywiście nie najlepszym rozwiązaniem, ponieważ wymaga jQuery. Zamiast tego preferuj rozwiązanie czysto JavaScript.

$(location).attr('href', 'http://stackoverflow.com')
    
1587
2019-05-19 13: 36: 13Z
  1. To jest ta dosłowna odpowiedź na pytanie. Jeśli korzystasz już z Jquery, a więc jest już załadowany, będzie to bardziej wydajne i oczywiście bardziej przejrzyste użycie skrótu
    2012-01-12 12: 00: 40Z
  2. Co ważniejsze, czy istnieje sposób na zrobienie tego z jQuery, który jest absurdalny? To jest tylko opakowanie dla window.location.href = url; Ale jeśli jQuery miał jakąś funkcję, która jeśli window.location.href = url; nie działałby w obecnym środowisku (przeglądarka, system operacyjny itp.). Rdzeń jQuery mógłby skompensować?
    2012-02-29 16: 03: 25Z
  3. Zmuszenie jQuery do równania w ten sposób jest po prostu śmieszne i bezcelowe, zwłaszcza że window.location nie jest elementem, a zatem nie ma atrybutów.
    2012-10-03 10: 32: 36Z
  4. W jakiś sposób wątpię, czy to nadal działa z najnowszymi wersjami jQuery, gdzie .attr() faktycznie ustawia atrybuty (tj. .setAttribute())
    2013-07-03 11: 23: 52Z
  5. @ deltaray To jest nie inny sposób przekierowania, jak wspomniano powyżej, to nic nie znaczące opakowanie wokół obiektu lokalizacji, które nie jest nawet element! Przypomina mi to i.stack.imgur.com/ssRUr.gif
    2014-01-23 15: 48: 46Z

Standardowy „waniliowy” sposób JavaScript na przekierowanie strony:

window.location.href = 'newPage.html';


Jeśli jesteś tutaj, ponieważ tracisz HTTP_REFERER podczas przekierowywania, czytaj dalej:


Poniższa sekcja jest przeznaczona dla użytkowników korzystających z HTTP_REFERER jako jednego z wielu bezpiecznych środków (chociaż nie jest to świetny środek ochronny). Jeśli używasz Internet Explorer 8 lub niższego, te zmienne tracą się podczas korzystania z jakiejkolwiek formy JavaScript przekierowanie strony (location.href itp.).

Poniżej przedstawiamy alternatywę dla IE8 i amp; niższy , abyśmy nie stracili HTTP_REFERER. W przeciwnym razie prawie zawsze możesz po prostu użyć window.location.href.

Testowanie pod kątem HTTP_REFERER (wklejanie adresu URL, sesja itp.) może być pomocne w określaniu, czy żądanie jest uzasadnione. ( Uwaga: istnieją również sposoby na obejście /sfałszowanie tych polecających, jak zauważył link droop w komentarzach)


Proste rozwiązanie do testowania w różnych przeglądarkach (powrót do window.location.href dla przeglądarki Internet Explorer 9+ i wszystkich innych przeglądarek)

Użycie: redirect('anotherpage.aspx');

function redirect (url) {
    var ua        = navigator.userAgent.toLowerCase(),
        isIE      = ua.indexOf('msie') !== -1,
        version   = parseInt(ua.substr(4, 2), 10);

    // Internet Explorer 8 and lower
    if (isIE && version < 9) {
        var link = document.createElement('a');
        link.href = url;
        document.body.appendChild(link);
        link.click();
    }

    // All other browsers can use the standard window.location.href (they don't lose HTTP_REFERER like Internet Explorer 8 & lower does)
    else { 
        window.location.href = url; 
    }
}
    
588
2019-05-19 13: 36: 28Z
  1. Foot note: sprawdzenie, czy odwołanie jest środkiem bezpieczeństwa, jest kiepskim rozwiązaniem. duckduckgo.com/?q=referrer+spoofing
    2013-01-29 23: 41: 11Z
  2. Jeśli masz identyfikator sesji HTTP GET w adresie URL odsyłacza, można go użyć do sprawdzenia, czysesja dla ważności.
    2015-08-21 04: 31: 05Z
  3. @ mcpDESIGNS czy na pewno próbowałeś użyć location.assign? Używam w aplikacji z IE8 i nie tracę nagłówka HTTP_REFERER.
    2015-09-30 18: 35: 27Z
  4. Przynajmniej w 2012 roku nie działało, może później poprawiono IE8 - to dobrze słyszeć!
    2018-02-26 00: 41: 47Z
  5. Twoja wzmianka o HTTP_REFERER pomogła mi zrozumieć problem, który mam z window.open i znalazłem rozwiązanie tutaj: stackoverflow.com/questions/7580613/… . Przy okazji mam problem w IE11!
    2019-01-09 10: 09: 54Z

Jest na to wiele sposobów.

// window.location
window.location.replace('http://www.example.com')
window.location.assign('http://www.example.com')
window.location.href = 'http://www.example.com'
document.location.href = '/path'

// window.history
window.history.back()
window.history.go(-1)

// window.navigate; ONLY for old versions of Internet Explorer
window.navigate('top.jsp')


// Probably no bueno
self.location = 'http://www.example.com';
top.location = 'http://www.example.com';

// jQuery
$(location).attr('href','http://www.example.com')
$(window).attr('location','http://www.example.com')
$(location).prop('href', 'http://www.example.com')
    
399
2019-01-16 10: 28: 35Z
  1. window.navigate jest tylko starą wersją IE (Firefox /Chrome tego nie obsługuje). Jeśli chcesz wyliczyć wszystkie opcje, nie zapomnij o document.location.
    2014-11-26 18: 19: 10Z
  2. To wcale nie wyjaśnia niczego . Co powinien wybrać ktoś? Wybierz losowo z listy? Co to dodatkowo dodaje do istniejących odpowiedzi?
    2015-07-17 07: 13: 15Z
  3. document.location = document.referrer; Dodaj go również do listy. To nie działa, tak jak History.back zamiast tego ponownie odświeża stronę.
    2015-07-30 20: 22: 46Z
  4. @ LéoLam Dlatego istnieje wyszukiwarka o nazwie Google. :-) Możesz wyszukiwać każdy w Google i znaleźć różnicę. Nie chcesz wybierać losowo.
    2017-09-18 10: 43: 02Z
  5. @ IamtheMostStupidPerson dokładnie mój punkt. Odpowiedź jest bezużyteczna.
    2017-09-18 10: 44: 23Z

To działa dla każdej przeglądarki:

window.location.href = 'your_url';
    
308
2014-12-04 20: 30: 50Z
  1. Możesz także zrobić document.location.replace(redirectURL), jeśli nie chcesz, aby pierwsza strona była w historii przeglądarki
    2018-06-12 14: 06: 41Z

Pomogłoby ci, gdybyś był trochę bardziej opisowy w tym, co próbujesz zrobić. Jeśli próbujesz wygenerować dane stronicowane, istnieje kilka opcji tego, jak to zrobić. Możesz wygenerować oddzielne linki dla każdej strony, do której chcesz mieć dostęp bezpośrednio.

<a href='/path-to-page?page=1' class='pager-link'>1</a>
<a href='/path-to-page?page=2' class='pager-link'>2</a>
<span class='pager-link current-page'>3</a>
...

Zauważ, że bieżąca strona w przykładzie jest obsługiwana inaczej w kodzie i CSS.

Jeśli chcesz, aby stronicowane dane zostały zmienione za pomocą AJAX, to właśnie tam trafi jQuery. Wystarczy dodać moduł obsługi kliknięć do każdego znacznika zakotwiczenia odpowiadającego innej stronie. Ta obsługa kliknięć wywoła kod JQuery, który przejdzie i pobierze następną stronę za pośrednictwem AJAX i zaktualizuje tabelę o nowe dane. Poniższy przykład zakłada, że ​​tymieć usługę internetową, która zwraca nowe dane strony.

$(document).ready( function() {
    $('a.pager-link').click( function() {
        var page = $(this).attr('href').split(/\?/)[1];
        $.ajax({
            type: 'POST',
            url: '/path-to-service',
            data: page,
            success: function(content) {
               $('#myTable').html(content);  // replace
            }
        });
        return false; // to stop link
    });
});
    
282
2009-02-02 13: 18: 06Z

Myślę też, że najlepszym sposobem jest location.replace(URL), ale jeśli chcesz powiadomić wyszukiwarki o swoim przekierowaniu (nie analizują kodu JavaScript, aby zobaczyć przekierowanie), powinieneś dodać metatag rel="canonical" do swojej witryny. /p>

Dodanie sekcji noscript ze znacznikiem meta odświeżania HTML jest również dobrym rozwiązaniem. Proponuję skorzystać z tego JavaScript narzędzie przekierowania do tworzenia przekierowań. Posiada również obsługę przeglądarki Internet Explorer, aby przekazać adres URL HTTP.

Przykładowy kod bez opóźnienia wygląda tak:

<!-- Place this snippet right after opening the head tag to make it work properly -->

<!-- This code is licensed under GNU GPL v3 -->
<!-- You are allowed to freely copy, distribute and use this code, but removing author credit is strictly prohibited -->
<!-- Generated by http://insider.zone/tools/client-side-url-redirect-generator/ -->

<!-- REDIRECTING STARTS -->
<link rel="canonical" href="https://yourdomain.com/"/>
<noscript>
    <meta http-equiv="refresh" content="0;URL=https://yourdomain.com/">
</noscript>
<!--[if lt IE 9]><script type="text/javascript">var IE_fix=true;</script><![endif]-->
<script type="text/javascript">
    var url = "https://yourdomain.com/";
    if(typeof IE_fix != "undefined") // IE8 and lower fix to pass the http referer
    {
        document.write("redirecting..."); // Don't remove this line or appendChild() will fail because it is called before document.onload to make the redirect as fast as possible. Nobody will see this text, it is only a tech fix.
        var referLink = document.createElement("a");
        referLink.href = url;
        document.body.appendChild(referLink);
        referLink.click();
    }
    else { window.location.replace(url); } // All other browsers
</script>
<!-- Credit goes to http://insider.zone/ -->
<!-- REDIRECTING ENDS -->
    
241
2018-01-18 15: 42: 18Z

Ale jeśli ktoś chce przekierować z powrotem do strony głównej, może użyć następującego fragmentu.

window.location = window.location.host

Byłoby pomocne, gdybyś miał trzy różne środowiska, takie jak programowanie, inscenizacja i produkcja.

Możesz przeglądać to okno lub obiekt window.location, umieszczając te słowa w konsoli Chrome lub Firebug Konsola.

    
216
2017-01-21 20: 07: 34Z
  1. window.location.replace (window.location.protocol + "//" + window.location.host)
    2014-01-17 00: 21: 28Z
  2. jeszcze prostsze: window.location = '/'
    2014-06-21 23: 56: 02Z
  3. Iftah - zależy od metatagu "base".
    2016-01-26 13: 18: 59Z

JavaScript zapewnia wiele metod pobierania i zmiany bieżącego adresu URL wyświetlanego w pasku adresu przeglądarki. Wszystkie te metody używają obiektu 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 ..

var currentLocation = window.location;

Podstawowa struktura adresu URL

<protocol>//<hostname>:<port>/<pathname><search><hash>

wprowadź opis obrazu tutaj>> </p>

<ol>
<li> <p> Protokół - określa nazwę protokołu używaną do uzyskania dostępu do zasobu w Internecie. (HTTP (bez SSL) lub HTTPS (z SSL)) </p> </li>
<li> <p> nazwa hosta - nazwa hosta określa hosta, który jest właścicielem zasobu. Na przykład www.stackoverflow.com. Serwer zapewnia usługi przy użyciu nazwy hosta. </p> </li>
<li> <p> port - numer portu używany do rozpoznawania określonego procesu, do którego ma zostać przesłany Internet lub inna wiadomość sieciowa, gdy dotrze do serwera. </p> </li>
<li> <p> ścieżka - ścieżka podaje informacje o określonym zasobie w hoście, do którego klient sieci chce uzyskać dostęp. Na przykład stackoverflow.com/index.html. </p> </li>
<li> <p> zapytanie - łańcuch zapytania podąża za składnikiem ścieżki i dostarcza ciąg informacji, które zasób może wykorzystać w pewnym celu (na przykład jako parametry wyszukiwania lub dane do przetworzenia). </p> </li>
<li> <p> hash - część zakotwiczenia adresu URL zawiera znak skrótu (#). </p> </li>
</ol>
<p> Dzięki tym właściwościom obiektu Położenie możesz uzyskać dostęp do wszystkich tych komponentów URL </p>

<ol>
<li>
<strong> hash </strong> - ustawia lub zwraca zakotwiczoną część adresu URL. </li>
<li>
<strong> host </strong> - zestawy
lub zwraca nazwę hosta i port URL. </li>
<li>
<strong> nazwa hosta </strong> - zestawy lub
zwraca nazwę hosta adresu URL. </li>
<li>
<strong> href </strong> - ustawia lub zwraca cały
URL. </li>
<li>
<strong> nazwa ścieżki </strong> - ustawia lub zwraca nazwę ścieżki URL. </li>
<li>
<strong> port </strong> - ustawia lub zwraca numer portu używany przez serwer dla adresu URL. </li>
<li>
<strong> protokół </strong> - ustawia lub zwraca protokół adresu URL. </li>
<li>
<strong> szukaj </strong> - zestawy
lub zwraca część adresu URL zapytania </li>
</ol>
<p> Teraz Jeśli chcesz zmienić stronę lub przekierować użytkownika na inną stronę, możesz użyć właściwości <code>href</code> obiektu Location w ten sposób </p>

<p> Możesz użyć właściwości href obiektu Location. </p>

<pre><code>window.location.href =

Obiekt lokalizacji ma również te trzy metody

  1. assign () - ładuje nowy dokument.
  2. reload () - ładuje ponownie bieżący dokument.
  3. replace () - zastępuje bieżący dokument nowym

Możesz użyć assign () i zastąpić metody, aby przekierować do innych stron takich jak te

location.assign("http://www.stackoverflow.com");

location.replace("http://www.stackoverflow.com");

Czym różni się assign () i replace () - różnica między metodą replace () a metodą assign () () polega na tym, że replace () usuwa Adres URL bieżącego dokumentu z historii dokumentu oznacza, że ​​nie można użyć przycisku „wstecz”, aby powrócić do oryginalnego dokumentu. Więc użyj metody assign (), jeśli chcesz załadować nowy dokument, i chcesz dać opcję powrotu do oryginalnego dokumentu.

Możesz zmienić właściwość href obiektu położenia za pomocą jQuery , podobnie jak to

$(location).attr('href',url);

A zatem możesz przekierować użytkownika do innego adresu URL.

    
202
2017-10-24 09: 52: 54Z

Zasadniczo jQuery to po prostu szkielet JavaScript i do wykonywania niektórych rzeczy, takich jak przekierowanie w tym przypadku, możesz po prostu użyć czystego JavaScript , więc w takim przypadku masz 3 opcje używając waniliowego JavaScript:

1) Użycie opcji zastąp , która zastąpi bieżącą historię strony, co oznacza, że ​​nie można użyć przycisku wstecz , aby wrócić do oryginału strona.

window.location.replace("http://stackoverflow.com");

2) Używając przypisania lokalizacji , zachowasz historię za Ciebie i za pomocą przycisku Wstecz możesz wrócić do oryginalnej strony:

window.location.assign("http://stackoverflow.com");

3) Zalecam używanie jednego z tych wcześniejszych sposobów, ale może to być trzecia opcja wykorzystująca czysty JavaScript:

window.location.href="http://stackoverflow.com";

Możesz również napisać funkcję w jQuery, aby ją obsłużyć, ale nie jest to zalecane, ponieważ jest to tylko jedna linia czysta funkcja JavaScript, również możesz 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 bądź location.replace("http://stackoverflow.com");

Również pokazuję je wszystkie na obrazku poniżej:

 location.replace location.assign

    
191
2019-01-18 23: 52: 41Z
  1. Polecam również używanie assign() przez href=, ponieważ w niektórych przypadkach te ostatnie nie działały prawidłowo.
    2018-08-23 07: 57: 15Z

Powinien być w stanie ustawić za pomocą window.location.

Przykład :

window.location = "https://stackoverflow.com/";

Oto poprzedni post na ten temat: Jak przekierować na inną stronę internetową?

    
190
2019-05-19 13: 36: 47Z
  1. Może to zadziała, ale nie jestem pewien, czy jest to właściwy sposób. Nie widzę dokumentacji, która to wspiera. Może to doprowadzić programistów do złych praktyk programistycznych.
    2016-11-11 20: 25: 22Z

Zanim zacznę, jQuery to biblioteka JavaScript używana do manipulacji DOM. Nie powinieneś więc używać jQuery do przekierowania strony.

Cytat z Jquery.com:

  

Podczas gdy jQuery może działać bez większych problemów w starszych wersjach przeglądarki,   nie testujemy w nich aktywnie jQuery i zazwyczaj nie naprawiamy błędów   które mogą się w nich pojawić.

Znaleziono tutaj: https://jquery.com/browser-support/

Więc jQuery nie jest rozwiązaniem end-all i be-all dla kompatybilności wstecznej.

Poniższe rozwiązanie wykorzystujące surowy JavaScript działa we wszystkich przeglądarkach i było standardem przez długi czas, więc nie potrzebujesz żadnych bibliotek do obsługi różnych przeglądarek.

Ta strona przekieruje do Google po 3000 milisekund

<!DOCTYPE html>
<html>
    <head>
        <title>example</title>
    </head>
    <body>
        <p>You will be redirected to google shortly.</p>
        <script>
            setTimeout(function(){
                window.location.href="http://www.google.com"; // The URL that will be redirected too.
            }, 3000); // The bigger the number the longer the delay.
        </script>
    </body>
</html>

Dostępne są następujące opcje:

window.location.href="url"; // Simulates normal navigation to a new page
window.location.replace("url"); // Removes current URL from history and replaces it with a new URL
window.location.assign("url"); // Adds new URL to the history stack and redirects to the new URL

window.history.back(); // Simulates a back button click
window.history.go(-1); // Simulates a back button click
window.history.back(-1); // Simulates a back button click
window.navigate("page.html"); // Same as window.location="url"

Podczas korzystania z opcji Zamień przycisk Wstecz nie wraca 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 lub window.location.assign. Jeśli korzystasz z opcji umożliwiającej użytkownikowi powrót do strony przekierowania, pamiętaj, że po wejściu na stronę przekierowania przekieruje cię z powrotem. Więc weź to pod uwagę przy wyborze opcji przekierowania. W warunkach, w których strona przekierowuje tylko wtedy, gdy działanie jest wykonywane przez użytkownika, posiadanie strony w historii przycisku wstecz będzie w porządku. Ale jeśli strona przekierowuje automatycznie, powinieneś użyć polecenia replace, aby użytkownik mógł użyć przycisku Wstecz, nie zmuszając się z powrotem do strony, którą przekierowuje.

Możesz również użyć metadanych, aby uruchomić przekierowanie strony, jak następuje.

Odświeżanie META

<meta http-equiv="refresh" content="0;url=http://evil.com/" />

Lokalizacja META

<meta http-equiv="location" content="URL=http://evil.com" />

Przeniesienie BASE

<base href="http://evil.com/" />

Na tej stronie można znaleźć wiele innych metod przekierowania niczego niepodejrzewającego klienta na stronę, której mogą nie chcieć przejść (żadna z nich nie jest zależna od jQuery):

  

https://code.google.com/p/html5security/wiki/RedirectionMethods

Chciałbym również podkreślić, że ludzie nie lubią być losowo przekierowywani. Przekierowuj ludzi tylko wtedy, gdy jest to absolutnie potrzebne. Jeśli zaczniesz przekierowywać ludzi losowo, nigdy już nie wejdą na twoją stronę.

Następny akapit jest hipotetyczny:

Możesz także zostać zgłoszony jako złośliwa witryna. Jeśli tak się stanie, gdy ludzie klikną link do Twojej witryny, przeglądarka użytkowników może ostrzec ich, że Twoja witryna jest złośliwa. Może się zdarzyć, że wyszukiwarki zaczną tracić ocenę, jeśli osoby zgłaszają złe doświadczenia w witrynie.

Przejrzyj wskazówki dla webmasterów Google dotyczące przekierowań: https://support.google.com/webmasters/answer/2721217? Hl = en & ref_topic = 6001971

Oto zabawna mała strona, która wyrzuca cię ze strony.

<!DOCTYPE html>
<html>
    <head>
        <title>Go Away</title>
    </head>
    <body>
        <h1>Go Away</h1>
        <script>
            setTimeout(function(){
                window.history.back();
            }, 3000);
        </script>
    </body>
</html>

Jeśli połączysz ze sobą dwa przykłady stron, będziesz miał małą pętlę przekierowania, która zagwarantuje, że użytkownik nigdy nie będzie chciał ponownie korzystać z witryny.

    
162
2019-05-19 13: 38: 37Z
  1. Zwracam się z prośbą o jQuery, mówiąc, że nie jest ona potrzebna. JQuery ma wiele przydatnych przydatnych skrótów dla JavaScript, ale nie ma potrzeby wprowadzania skrótów do przekierowań. JQuery to tylko JavaScript. Nic więcej. Normalny sposób wywołania przekierowania będzie działał z jego funkcjami za pomocą jQuery.
    2015-06-27 12: 16: 27Z
  2. Patrick, według twojej własnej logiki nie ma potrzeby JQuery we wszystkich sytuacjach. Chodzi o wygodę, a pytanie o to pyta. Najlepszym narzędziem, które powiedziałbym, jest wersja JQuery, ponieważ prawdopodobnie oddzieli ona specyfikację przeglądarki na przyszłość. Więc twój argument jest nadal nieważny. Pytanie o JQuery.
    2015-06-30 22: 17: 17Z
  3. W tej chwili możesz mieć racjęr nie jesteś w stanie zobaczyć przyszłości i nie możesz w tej chwili przewidzieć, jak to będzie w przyszłości. Pozostaje jednak pytanie o JQuery!
    2015-07-02 22: 19: 42Z
  4. "Tak, JavaScript może się zmienić i jeśli się zmieni, wtedy jQuery musi się zmienić, ponieważ jQuery jest JavaScriptem. - Patrick W. McMahon wczoraj" Dziękuję, odpoczywam. " /div>
    2015-07-05 18: 45: 26Z
  5. Nie masz sprawy. JQuery ma większą szansę zmienić niż JavaScript. Nowa wersja JQuery staje się najbardziej aktualna i stary jQuery staje się przestarzały, a problemy sprawiają, że kodowanie zależy od ustawionej wersji JQuery.
    2015-07-05 18: 50: 59Z
var url = 'asdf.html';
window.location.href = url;
    
157
2012-05-01 20: 35: 48Z

Możesz to zrobić bez jQuery jako:

window.location = "http://yourdomain.com";

A jeśli chcesz tylko jQuery, możesz to zrobić tak:

$jq(window).attr("location","http://yourdomain.com");
    
138
2014-11-29 06: 13: 56Z
  1. JQuery jest prawdopodobnie lepszym pomysłem, ponieważ może odciągnąć przyszłe zmiany przeglądarki /przestarzałe
    2015-06-24 23: 14: 27Z

Działa to z jQuery:

$(window).attr("location", "http://google.fr");
    
137
2016-10-30 16: 11: 26Z

# Przekierowanie strony HTML za pomocą jQuery /JavaScript

Wypróbuj ten przykładowy kod:

function YourJavaScriptFunction()
{
    var i = $('#login').val();
    if (i == 'login')
        window.location = "login.php";
    else
        window.location = "Logout.php";
}

Jeśli chcesz podać pełny adres URL jako window.location = "www.google.co.in"; .

    
84
2016-08-31 12: 08: 08Z
  1. "Using jQuery" jest niedokładne. A przykład użycia pełnego adresu URL nie zadziała, ponieważ nie jest to pełny adres URL. Nie ma protokołu, więc będzie interpretowany jako względny adres URL.
    2017-10-31 21: 18: 27Z

Musisz umieścić ten wiersz w swoim kodzie:

$(location).attr("href","http://stackoverflow.com");

Jeśli nie masz jQuery, przejdź do JavaScript:

window.location.replace("http://stackoverflow.com");
window.location.href("http://stackoverflow.com");
    
77
2019-03-28 05: 20: 33Z
  1. po co owijać wszystko w jquery?
    2016-09-22 18: 12: 41Z

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 stworzy dynamiczną stronę przekierowania.

<script>
    var url = window.location.search.split('url=')[1]; // Get the URL after ?url=
    if( url ) window.location.replace(url);
</script>

Powiedz, że po prostu umieściłeś ten fragment w pliku redirect/index.html na swojej stronie internetowej, możesz go użyć w ten sposób.

  

http://www.mywebsite.com/redirect?url=http://stackoverflow.com

A jeśli przejdziesz do tego linku, to się automatyzujeprzekieruj Cię do stackoverflow.com .

  

Link do dokumentacji

W ten sposób tworzysz Prostą stronę przekierowania z JavaScript

Edytuj:

Jest też jedna rzecz do odnotowania. Dodałem window.location.replace do mojego kodu, ponieważ wydaje mi się, że pasuje on do strony przekierowania, ale musisz wiedzieć, że podczas korzystania z window.location.replace i przekierowania, gdy naciśniesz przycisk Wstecz w przeglądarce, nie zostanie wróć do strony przekierowania i wróci na poprzednią stronę, spójrz na tę małą rzecz demonstracyjną.

Przykład:

  

Proces: przechowywanie domu = > przekieruj stronę do google = > google

     

W Google: google = > przycisk Wstecz w przeglądarce = > zapisz dom

Więc jeśli to odpowiada Twoim potrzebom, wszystko powinno być w porządku. Jeśli chcesz dołączyć stronę przekierowania do historii przeglądarki, zastąp to

if( url ) window.location.replace(url);

z

if( url ) window.location.href = url;
    
75
2014-10-26 10: 55: 01Z

Po kliknięciu dodaj:

window.location.href = "The URL where you want to redirect";
$('#id').click(function(){
    window.location.href = "http://www.google.com";
});
    
70
2014-10-26 10: 44: 31Z

***** ORYGINALNE PYTANIE BYŁO - „JAK ZREDUKOWAĆ WYKORZYSTANIE JQUERY”, HENCE THE ANSWER IMPLEMENTS JQUERY > > KOMPLETNA PRZYPADEK WYKORZYSTANIA *****

Aby po prostu przekierować na stronę z JavaScript:

  window.location.href = "/contact/";

Lub jeśli potrzebujesz opóźnienia:

setTimeout(function () {
  window.location.href = "/contact/";
}, 2000);   // Time in milliseconds

jQuery pozwala z łatwością wybierać elementy ze strony internetowej. Możesz znaleźć wszystko, co chcesz na stronie, 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 znajomości jak wybrać element lub wydarzenie .

     $('a,img').on('click',function(e){
         e.preventDefault();
         $(this).animate({
             opacity: 0 //Put some CSS animation here
         }, 500);
         setTimeout(function(){
           // OK, finished jQuery staff, let's go redirect
           window.location.href = "/contact/";
         },500);
     });

Wyobraź sobie, że ktoś napisał skrypt /wtyczkę, która ma 10000 linii kodu ?! Z jQuery możesz połączyć się z tym kodem za pomocą linii lub dwóch.

    
70
2018-04-18 09: 11: 03Z
  1. Lepiej nie pisać w czapkach, chociaż dobra odpowiedź
    2018-10-12 19: 55: 31Z

Spróbuj tego:

location.assign("http://www.google.com");

Fragment kodu z przykładu .

    
58
2016-01-02 04: 29: 32Z

jQuery nie jest potrzebne. Możesz to zrobić:

window.open("URL","_self","","")

To takie proste!

Najlepszym sposobem zainicjowania żądania HTTP jest document.loacation.href.replace('URL').

    
54
2014-04-03 21: 23: 23Z

Najpierw napisz poprawnie. Chcesz poruszać się po aplikacji dla innego łącza z aplikacji dla innego łącza. Oto kod:

window.location.href = "http://www.google.com";

A jeśli chcesz poruszać się po stronach swojej aplikacji, to ja też mam kod, jeśli chcesz.

    
51
2014-04-03 21: 20: 11Z

Możesz przekierować w jQuery tak:

$(location).attr('href', 'http://yourPage.com/');
    
51
2016-07-03 05: 01: 56Z

W JavaScript i jQuery możemy użyć następującego kodu, aby przekierować jedną stronę na inną stronę:

window.location.href="http://google.com";
window.location.replace("page1.html");
    
43
2014-04-03 21: 22: 34Z

Javascript:

window.location.href='www.your_url.com';
window.top.location.href='www.your_url.com';
window.location.replace('www.your_url.com');

Jquery:

var url='www.your_url.com';
$(location).attr('href',url);
$(location).prop('href',url);//instead of location you can use window
    
43
2017-05-04 12: 12: 47Z
  1. Czy istnieje powód do przechowywania adresu URL w jQuery jako zmiennej, ale nie w Vanilla?
    2017-08-10 05: 00: 02Z

ECMAScript 6 + jQuery, 85 bajtów

$({jQueryCode:(url)=>location.replace(url)}).attr("jQueryCode")("http://example.com")

Proszę, nie zabijaj mnie, to żart. To żart. To jest żart.

To „dostarczyło odpowiedzi na pytanie” w tym sensie, że poprosiło o rozwiązanie „używając jQuery”, które w tym przypadku pociąga za sobą wymuszenie tego w równaniu.

Ferrybig najwyraźniej potrzebuje wyjaśnienia dowcipu (wciąż żartuje, jestem pewien, że istnieją ograniczone opcje formularza recenzji), więc bez dalszych ceregieli:

Inne odpowiedzi używają niepotrzebnie attr() jQuery na location lub window.

Ta odpowiedź nadużywa go, ale w bardziej śmieszny sposób. Zamiast używać go do ustawiania lokalizacji, używa attr() do pobrania funkcji, która ustawia lokalizację.

Funkcja nazywa się jQueryCode, mimo że nie ma w niej nic jQuery, a wywołanie funkcji somethingCode jest po prostu okropne, zwłaszcza gdy coś nie jest nawet językiem.

„85 bajtów” to odniesienie do Code Golf. Gra w golfa nie jest oczywiście czymś, co powinieneś robić poza golfowym kodem, a ponadto ta odpowiedź nie jest w rzeczywistości rozgrywana w golfa.

Zasadniczo, kulisz się.

    
42
2016-10-30 16: 27: 41Z

Oto przekierowanie opóźnienia. Możesz ustawić czas opóźnienia na dowolne:

<!doctype html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <title>Your Document Title</title>
    <script type="text/javascript">
        function delayer(delay) {
            onLoad = setTimeout('window.location.href = "http://www.google.com/"', delay);
        }
    </script>
</head>

<body>
    <script>
        delayer(8000)
    </script>
    <div>You will be redirected in 8 seconds!</div>
</body>

</html>
    
39
2016-02-23 06: 26: 07Z
  1. lepiej: setTimeout (function () {window.location.href = " google.com „}, opóźnienie);
    2014-04-04 21: 33: 51Z

Istnieją trzy główne sposoby na to,

window.location.href='blaah.com';
window.location.assign('blaah.com');

i ...

window.location.replace('blaah.com');

Ostatni z nich jest najlepszy dla tradycyjnego przekierowania, ponieważ nie zapisze strony, do której trafiłeś przed przekierowaniem w historii wyszukiwania. Jeśli jednak chcesz otworzyć kartę z JavaScript, możesz użyć dowolnego z powyższych. 1

EDYCJA: Prefiks window jest opcjonalny.

    
36
2015-01-19 00: 58: 45Z

Po prostu musiałem zaktualizować tę śmieszność za pomocą kolejnej nowszej metody jQuery:

var url = 'http://www.fiftywaystoleaveyourlocation.com';
$(location).prop('href', url);
    
36
2016-07-03 04: 58: 33Z
źródło umieszczone tutaj