2011-09-01 11 views
46

¿Hay alguna manera de usar JQuery para redirigir a una URL específica después de un período de tiempo de entrega?JQuery Redirigir a URL después del tiempo especificado

+0

Debe aceptar la respuesta correcta ... – Legionar

+0

Si desea multi-navegador y el apoyo de SEO: [redirigir generador] (http: //insider.zone/tools/client-side-url-redirect-generator/) –

Respuesta

91

usted podría utilizar la función setTimeout():

// Your delay in milliseconds 
var delay = 1000; 
setTimeout(function(){ window.location = URL; }, delay); 
+2

lol casi idéntico pero 24 segundos más rápido: P –

45

Usted realmente no necesita jQuery para esto. Usted puede hacerlo con javascript simple usando el método de la setTimeout:

// redirect to google after 5 seconds 
window.setTimeout(function() { 
    window.location.href = 'http://www.google.com'; 
}, 5000); 
12
$(document).ready(function() { 
    window.setInterval(function() { 
    var timeLeft = $("#timeLeft").html();         
     if(eval(timeLeft) == 0){ 
       window.location= ("http://www.technicalkeeda.com");     
     }else{    
      $("#timeLeft").html(eval(timeLeft)- eval(1)); 
     } 
    }, 1000); 
}); 
+2

Desanimaría el uso de 'eval()' ya que tiene muchas consecuencias peligrosas. En cambio, recomendaría usar 'parseInt()'. – winhowes

+0

Muchas gracias ... – Roni

4

sólo tiene que utilizar:

setTimeout("window.location.href='yoururl';",4000); 

..where la '4000' se m.second

6

Se puede utilizar

$(document).ready(function(){ 
     setTimeout(function() { 
     window.location.href = "http://test.example.com/;" 
     }, 5000); 
    }); 
2

He hecho un si mple demo que solicita X número de segundos y redirecciones para configurar la url. Si no quiere esperar hasta el final de la cuenta, simplemente haga clic en el contador para redirigir sin tiempo. Contador simple que contará hacia atrás mientras pulsa el tiempo en la mitad de la página. Puede ejecutarlo haciendo clic o mientras se carga alguna página.

LIVE DEMO ONLOAD

LIVE DEMO ONCLICK

I también hizo repo github para esto: https://github.com/GlupiJas/redirect-counter-plugin

JS código de ejemplo:

// FUNCTION CODE 
function gjCountAndRedirect(secounds, url) 
{ 

     $('#gj-counter-num').text(secounds); 

     $('#gj-counter-box').show(); 

    var interval = setInterval(function() 
    { 

     secounds = secounds - 1; 

     $('#gj-counter-num').text(secounds); 

     if(secounds == 0) 
     { 

      clearInterval(interval); 
      window.location = url; 
      $('#gj-counter-box').hide(); 

     } 

    }, 1000); 

    $('#gj-counter-box').click(function() //comment it out -if you dont want to allo count skipping 
    { 
     clearInterval(interval); 
     window.location = url; 

    }); 
} 

// USE EXAMPLE 
$(document).ready(function() { 
    //var 
    var gjCountAndRedirectStatus = false; //prevent from seting multiple Interval 

    //call 
    $('h1').click(function(){ 
     if(gjCountAndRedirectStatus == false) 
     { 
      gjCountAndRedirect(10, document.URL); 
      gjCountAndRedirectStatus = true; 
     } 
    }); 

}); 
1

Sí, la solución es utilizar setTimeout, así:

var delay = 10000; 
var url = "https://stackoverflow.com"; 
var timeoutID = setTimeout(function() { 
    window.location.href = url; 
}, delay); 

nota de que el resultado se almacena en timeoutID. Si, por cualquier razón, tiene que cancelar el pedido, sólo tiene que llamar

clearTimeout(timeoutID); 
Cuestiones relacionadas