Перш ніж почати, jQuery - це бібліотека JavaScript, яка використовується для DOM-маніпуляцій. Тож вам не слід використовувати jQuery для перенаправлення сторінки.
Цитата на Jquery.com:
Хоча jQuery може працювати без великих проблем у старих версіях браузера, ми не тестуємо jQuery в них і, як правило, не виправляємо помилки, які можуть з’являтися в них.
Це було знайдено тут:
https://jquery.com/browser-support/
Тож jQuery - це не всебічне рішення для зворотної сумісності.
Наведене нижче рішення із використанням сирого JavaScript працює у всіх браузерах і вже давно є стандартним, тому для підтримки крос-браузера вам не потрібні бібліотеки.
Ця сторінка буде перенаправлена на Google через 3000 мілісекунд
<!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>
Існують такі варіанти:
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"
Використовуючи заміну, кнопка "назад" не повернеться на сторінку переадресації, як ніби її ніколи не було в історії. Якщо ви бажаєте, щоб користувач міг повернутися на сторінку переадресації, тоді скористайтесь window.location.href
абоwindow.location.assign
. Якщо ви користуєтесь опцією, яка дозволяє користувачеві повернутися на сторінку переадресації, пам’ятайте, що коли ви переходите на сторінку переадресації, вона перенаправить вас назад. Тому врахуйте це, вибираючи варіант для переадресації. За умов, коли сторінка переадресовується лише тоді, коли користувач виконує дії, тоді мати сторінку в історії повернення кнопок буде добре. Але якщо сторінка автоматично переспрямовується, то вам слід використовувати заміну, щоб користувач міг користуватися кнопкою "Назад", не повертаючись на сторінку, яку переадресовує.
Ви також можете використовувати метадані для запуску переспрямування сторінки, як описано нижче.
META Refresh
<meta http-equiv="refresh" content="0;url=http://evil.com/" />
МЕТА Місцезнаходження
<meta http-equiv="location" content="URL=http://evil.com" />
БАЗА Викрадення
<base href="http://evil.com/" />
На цій сторінці можна знайти ще багато методів перенаправлення вашого нічого не підозрюючого клієнта на сторінку, яку він може не бажати переходити (жоден з них не покладається на jQuery):
https://code.google.com/p/html5security/wiki/RedirectionMethods
Я також хотів би зазначити, що люди не люблять, щоб їх випадковим чином перенаправляли. Тільки перенаправляйте людей лише в разі необхідності. Якщо ви почнете переадресовувати людей випадковим чином, вони більше ніколи не перейдуть на ваш сайт.
Наступний параграф є гіпотетичним:
Вас також можуть повідомити про шкідливий сайт. Якщо це станеться, тоді, коли люди натискають на посилання на ваш сайт, браузер користувачів може попередити їх, що ваш сайт шкідливий. Також може трапитися те, що пошукові системи можуть почати знижувати ваш рейтинг, якщо люди повідомляють про поганий досвід на вашому сайті.
Перегляньте Посібник для веб-майстрів Google щодо переспрямувань:
https://support.google.com/webmasters/answer/2721217?hl=uk&ref_topic=6001971
Ось прикольна маленька сторінка, яка виводить вас зі сторінки.
<!DOCTYPE html>
<html>
<head>
<title>Go Away</title>
</head>
<body>
<h1>Go Away</h1>
<script>
setTimeout(function(){
window.history.back();
}, 3000);
</script>
</body>
</html>
Якщо ви поєднаєте два приклади сторінок разом, у вас з'явиться немовля перенаправлення, що гарантує, що ваш користувач ніколи більше не захоче використовувати ваш сайт.