Zanim zacznę, jQuery jest biblioteką JavaScript używaną do manipulacji DOM. Dlatego nie powinieneś używać jQuery do przekierowania strony.
Cytat z Jquery.com:
Chociaż jQuery może działać bez większych problemów w starszych wersjach przeglądarek, nie aktywnie testujemy w nich jQuery i na ogół nie naprawiamy błędów, które mogą się w nich pojawiać.
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
<!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>
Różne opcje są następujące:
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 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ż
<meta http-equiv="refresh" content="0;url=http://evil.com/" />
Lokalizacja META
<meta http-equiv="location" content="URL=http://evil.com" />
BASE Hijacking
<base href="http://evil.com/" />
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):
https://code.google.com/p/html5security/wiki/RedirectionMethods
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.
<!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 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.