Через певний час перенаправляйте веб-сайт


135

Що мені потрібно зробити, щоб на веб-сайті з’явилася функція, на якій сказано, що вона перенаправить вас на сайт через 3 секунди або близько того?



Мені просто цікаво, навіщо вам це хотіти робити? Кожного разу, коли я відвідував таку сторінку, я вважаю за краще направлятися за 0 секунд.
allesklar

@allesklar вибачте за пізню відповідь. Я розробляю сайт, і я хотів дізнатися, чи не простіше переходити з редактора коду на веб-браузер, не натискаючи оновлення кожного разу.
кодекс

Цей генератор переадресації JS допоможе вам легко створити фрагменти відкладеного переадресації. Він має підтримку nocript і seo, а також має IE 8 - і нижче - виправлення, щоб передати http-реферер!
Patartics Milán

1
@allesklar - один із прикладів використання цього. Якщо ви зміните свій домен і хочете, щоб у перший місяць усі переспрямовувались на новий домен (але повідомте про те, що старий домен буде видалений через місяць або близько того). Тому що навіть якщо ви надсилаєте та надсилаєте електронні листи, завжди є хтось, хто забуде і перейде до старого домену.
patricia

Відповіді:



69

Ви, ймовірно, шукаєте meta refreshтег :

<html>
    <head>
        <meta http-equiv="refresh" content="3;url=http://www.somewhere.com/" />
    </head>
    <body>
        <h1>Redirecting in 3 seconds...</h1>
    </body>
</html>

Зауважте, що використання цього часу meta refreshзастаріле і примхливе в наші дні, але іноді це єдиний життєздатний варіант (наприклад, якщо вам не вдається зробити заголовки перенаправлення HTTP на стороні сервера та / або вам потрібно підтримувати клієнтів, що не JavaScript, і т.д. ).


52

Якщо ви хочете більшого контролю, ви можете використовувати javascript, а не використовувати метатег. Це дозволить вам мати якийсь візуальний характер, наприклад, зворотний відлік.

Ось дуже базовий підхід із використанням setTimeout()

<html>
    <body>
    <p>You will be redirected in 3 seconds</p>
    <script>
        var timer = setTimeout(function() {
            window.location='http://example.com'
        }, 3000);
    </script>
</body>
</html>


Це буде шлях, якщо ви хочете, щоб текст динамічно відлічувався до 0 перед перенаправленням. Використовуйте таймер на 1 секунду, де функція таймера оновлює текст HTML, а потім запустіть новий таймер на 1 секунду, поки не минуть 3 секунди, потім виконайте переспрямування.
Ремі Лебо

19

Ось повний (але простий) приклад переадресації через X секунд та оновлення лічильника:

<html>
<body>
    <div id="counter">5</div>
    <script>
        setInterval(function() {
            var div = document.querySelector("#counter");
            var count = div.textContent * 1 - 1;
            div.textContent = count;
            if (count <= 0) {
                window.location.replace("https://example.com");
            }
        }, 1000);
    </script>
</body>
</html>

Початковий вміст counterдіви - це кількість секунд, які потрібно чекати.


Це не спрацювало , поки я не замінив location.href="https://example.com";зwindow.location='https://example.com'
NateH06

1
Можливо, краще скористатися window.location.replace("http://example.com");з причин, що обговорюються тут: stackoverflow.com/a/506004 Зміна надасть цій відповіді більш загальну.
Психея


4

Розмістіть наступний код переадресації HTML між та тегами вашого HTML-коду.

<meta HTTP-EQUIV="REFRESH" content="3; url=http://www.yourdomain.com/index.html">

Вищенаведений код переадресації HTML моментально перенаправить відвідувачів на іншу веб-сторінку. Зміст = "3; може бути змінено на кількість секунд, які ви хочете, щоб браузер зачекав перед перенаправленням. 4, 5, 8, 10 або 15 секунд тощо.


1

Використовуйте цей простий код JavaScript для перенаправлення сторінки на іншу сторінку, використовуючи певний проміжок часу ...

Будь ласка, додайте цей код на сторінку свого веб-сайту, на який ви хочете переспрямувати:

<script type="text/javascript">
(function(){
   setTimeout(function(){
     window.location="http://brightwaay.com/";
   },3000); /* 1000 = 1 second*/
})();
</script>

<meta http-equiv="refresh" content="3;url=http://example.com/" />є кращим варіантом, оскільки він простіший і працює без підтримки JavaScript.
Едвард

Ви правий брате ... але це залежить від ситуації .. колись нам потрібно перенаправитись на конкретні події, для цього JS - найкращий варіант.
Сонячний СМ

Я розумію, що ви маєте на увазі "Сонячний СМ". Хоча метатеги потрібно використовувати майже завжди, можуть існувати конкретні сценарії, як ваш, де JavaScript буде єдиним варіантом.
Едвард
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.