Redireccionar el sitio web después de cierto tiempo

135

¿Qué debo hacer para tener una función en un sitio web donde dice que lo redirigirá al sitio en aproximadamente 3 segundos?

codedude
fuente
Solo tengo curiosidad, ¿por qué querrías hacer eso? Cada vez que visité dicha página, preferiría que me dirigieran en 0 segundos.
allesklar
@allesklar perdón por la respuesta tardía. Estoy en desarrollo de un sitio, y quería ver si era más fácil cambiar del editor de código al navegador web sin presionar actualizar cada vez.
codedude
Este generador de redireccionamiento JS lo ayudará a crear fácilmente fragmentos de redireccionamiento retrasados. Tiene un soporte para noscript y seo, además tiene una solución IE 8 - y más baja - para pasar el http http!
Patartics Milán
1
@allesklar un ejemplo para usar esto. Si cambia su dominio y desea que todos sean redirigidos al nuevo dominio en el primer mes (pero haciéndoles saber que el dominio anterior se eliminará después de aproximadamente un mes). Porque incluso si envía y envía un correo electrónico, siempre hay alguien que olvida e ingresa al dominio anterior.
patricia

Respuestas:

209
<meta http-equiv="refresh" content="3;url=http://www.google.com/" />
Darin Dimitrov
fuente
O simplemente redirija a la raíz si tiene varios sitios usando <meta http-equiv = "refresh" content = "3; url = /" />
DJSampat
1
El W3C recomienda que esta etiqueta no se use: w3.org/TR/WCAG10-HTML-TECHS/#meta-element
huseyin39
69

Probablemente estés buscando la meta refreshetiqueta :

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

Tenga en cuenta que el uso de meta refreshestá en desuso y está mal visto en estos días, pero a veces es la única opción viable (por ejemplo, si no puede realizar la generación de encabezados de redireccionamiento HTTP en el lado del servidor y / o necesita admitir clientes que no son JavaScript, etc. )

LukeH
fuente
52

Si desea un mayor control, puede usar JavaScript en lugar de usar la metaetiqueta. Esto le permitiría tener una imagen de algún tipo, por ejemplo, una cuenta regresiva.

Aquí hay un enfoque muy básico usando 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
fuente
Este sería el camino a seguir si desea que el texto cuente dinámicamente hasta 0 antes de la redirección. Use un temporizador de 1 segundo, donde la función del temporizador actualiza el texto HTML y luego inicie un nuevo temporizador de 1 segundo, hasta que hayan transcurrido 3 segundos, luego realice la redirección.
Remy Lebeau
19

Aquí hay un ejemplo completo (pero simple) de redireccionamiento después de X segundos, mientras se actualiza un contador 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>

El contenido inicial del counterdiv es el número de segundos a esperar.

noamtm
fuente
Esto no funcionó hasta que lo reemplacé location.href="https://example.com";conwindow.location='https://example.com'
NateH06
1
Podría ser mejor usarlo window.location.replace("http://example.com");por las razones que se analizan aquí: stackoverflow.com/a/506004 El cambio proporcionaría a esta respuesta más generalidad.
Psique
10

La forma más simple es usar una etiqueta HTML META como esta:

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

Wikipedia

Ehsan
fuente
4

Coloque el siguiente código de redireccionamiento HTML entre las etiquetas y de su código HTML.

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

El código de redireccionamiento HTML anterior redireccionará a sus visitantes a otra página web al instante. El contenido = "3; puede cambiarse a la cantidad de segundos que desea que el navegador espere antes de redirigir. 4, 5, 8, 10 o 15 segundos, etc.

Muhammad Saqib
fuente
1

Use este código simple de JavaScript para redirigir la página a otra página usando un intervalo de tiempo específico ...

Agregue este código a la página de su sitio web, que desea redirigir:

<script type="text/javascript">
(function(){
   setTimeout(function(){
     window.location="http://brightwaay.com/";
   },3000); /* 1000 = 1 second*/
})();
</script>
Sunny SM
fuente
<meta http-equiv="refresh" content="3;url=http://example.com/" />es una mejor opción ya que es más simple y funciona sin soporte de JavaScript.
Edward
tienes razón hermano ... pero depende de la situación ... a veces necesitamos redirigir un evento específico para que JS sea la mejor opción.
Sunny SM
Entiendo lo que quieres decir, "Sunny SM". Aunque las metaetiquetas deben usarse casi siempre, podría haber escenarios específicos como el suyo donde JavaScript sería la única opción.
Edward