Перенаправить сайт через определенное время

135

Что мне нужно сделать, чтобы иметь функцию на веб-сайте, где говорится, что она перенаправит вас на сайт через 3 секунды или около того?

codedude
источник
Мне просто любопытно, зачем тебе это? Каждый раз, когда я посещал такую ​​страницу, я бы предпочел, чтобы меня направляли в 0 секунд.
allesklar
@allesklar извините за поздний ответ. Я нахожусь в разработке сайта, и я хотел посмотреть, было ли легче переключиться с редактора кода на веб-браузер, не нажимая кнопку обновления каждый раз.
кодирование
Этот генератор перенаправления JS поможет вам легко создавать отложенные фрагменты перенаправления. У него есть поддержка noscript и seo, плюс есть IE 8 - и ниже - исправление для передачи http referer!
Patartics Milán
1
@allesklar один пример, чтобы использовать это. Если вы измените свой домен и хотите, чтобы все перенаправлялись на новый домен в первый месяц (но, сообщив им, старый домен будет удален через месяц или около того). Потому что даже если вы отправляете и отправляете электронное письмо, всегда найдется кто-то, кто забудет и перейдет на старый домен.
Патриция

Ответы:

209
<meta http-equiv="refresh" content="3;url=http://www.google.com/" />
Дарин димитров
источник
Или просто перенаправьте в корень, если у вас есть несколько сайтов, использующих <meta http-экв = "refresh" content = "3; url = /" />
DJSampat
1
W3C рекомендует этот тег не использовать: w3.org/TR/WCAG10-HTML-TECHS/#meta-element
huseyin39
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 и т. Д. ).

LukeH
источник
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>

mbrevoort
источник
Это будет путь, если вы хотите, чтобы текст динамически отсчитывал до 0 до перенаправления. Используйте 1-секундный таймер, где функция таймера обновляет текст HTML, а затем запускает новый 1-секундный таймер, пока не истечет 3 секунды, затем выполните перенаправление.
Реми Лебо
19

Вот полный (но простой) пример перенаправления через X секунд при обновлении счетчика div:

<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>

Начальное содержание counterdiv - это количество секунд ожидания.

noamtm
источник
Это не работало, пока я не заменил location.href="https://example.com";наwindow.location='https://example.com'
NateH06
1
Может быть лучше использовать window.location.replace("http://example.com");по причинам, обсуждаемым здесь: stackoverflow.com/a/506004 Изменение даст этому ответу более общий характер.
Психея
10

Самый простой способ - использовать тег HTML META следующим образом:

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

Википедия

Ehsan
источник
4

Поместите следующий код перенаправления HTML между тегами и и HTML вашего кода.

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

Приведенный выше HTML-код перенаправления мгновенно перенаправит ваших посетителей на другую веб-страницу. Content = "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 - лучший вариант.
Солнечный СМ
Я понимаю, что вы имеете в виду, "Солнечный SM". Хотя метатеги должны использоваться почти всегда, могут быть конкретные сценарии, подобные вашему, где JavaScript будет единственным вариантом.
Эдвард