2010-07-20 27 views
85

¿Qué debo hacer para tener una función en un sitio web donde dice que te redirigirá al sitio en 3 segundos más o menos?Redirige el sitio web después de cierto período de tiempo

+2

posible duplicado de [¿Cómo puedo redireccionar a una página (inicio) a través de otra página (página de éxito) donde se mostrará un mensaje de éxito?] (Http://stackoverflow.com/questions/2949301/how-can -i-redirigir-a-una-página-a-casa-a-otra-páginas-a-un-éxito-página-donde-algunas-suc) – kennytm

+0

Solo tengo curiosidad, ¿por qué querrías hacer eso alguna vez? Cada vez que visitaba esa página, prefería haber sido dirigido en 0 segundos. – allesklar

+0

@allesklar lo siento por la respuesta tardía. Estoy en desarrollo de un sitio, y quería ver si era más fácil cambiar de editor de código a navegador web sin tener que actualizar cada vez. – codedude

Respuesta

138
<meta http-equiv="refresh" content="3;url=http://www.google.com/" /> 
+0

Thankx. Funciona para mí ... –

50

Probablemente se esté buscando la metarefresh tag:

<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 metarefresh es obsoleto y mal visto en estos días, pero a veces es la única opción viable (por ejemplo, si No es posible generar encabezados de redirección HTTP en el lado del servidor y/o necesita admitir clientes que no sean JavaScript, etc.).

4

La forma más sencilla está usando la etiqueta HTML META así:

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

WikiPedia

36

Si desea un mayor control se puede usar javascript en lugar de utilizar la etiqueta meta. Esto le permitiría tener una visual de algún tipo, p. una cuenta regresiva

Aquí es un enfoque muy básico utilizando 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

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 inicia un nuevo temporizador de 1 segundo, hasta que hayan transcurrido 3 segundos, luego haga el redireccionamiento. –

+0

el cuadro de fragmento de código de ejecución no funciona –

2

Coloque el siguiente código HTML redirigir código 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 redirección HTML anterior se redirigir a los usuarios 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 redireccionar. 4, 5, 8, 10 o 15 segundos, etc.

0

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

favor agregar este código en su página web, que es que desea redirigir:

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

'' es una mejor opción ya que es más simple y funciona sin soporte de JavaScript. – Edward

+0

tienes razón hermano ... pero depende de la situación ... a veces tenemos que redirigir un evento específico para que JS sea la mejor opción. –

+0

Entiendo lo que quiere decir, "Sunny S.M". Aunque las metaetiquetas se deben usar casi siempre, podría haber situaciones específicas como la suya, donde JavaScript sería la única opción. – Edward

9

Aquí está un ejemplo completo (pero sencillo) de redirigir después de X segundos , al actualizar 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.href="https://example.com"; 
      } 
     }, 1000); 
    </script> 
</body> 
</html> 

El contenido inicial del counter div es el número de segundos de espera.

+0

Esto no funcionó hasta que reemplacé 'location.href =" https://example.com ";' con 'window.location = 'https: // example.com'' – NateH06

+0

Gracias, respuesta editada. – noamtm

Cuestiones relacionadas