2011-09-01 12 views
46

Esiste un modo per utilizzare JQuery per reindirizzare a un URL specifico dopo un periodo di tempo concesso?JQuery Reindirizza all'URL dopo l'orario specificato

+0

Si dovrebbe accettare la risposta corretta ... – Legionar

+0

Se si vuole cross-browser e il supporto SEO: [redirect generatore] (http: //insider.zone/tools/client-side-url-redirect-generator/) –

risposta

91

è possibile utilizzare la funzione setTimeout():

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

lol quasi identico ma 24 secondi più veloce: P –

45

Non avete davvero bisogno di jQuery per questo. Si potrebbe fare con javascript semplice utilizzando il metodo 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

Scorrei l'uso di 'eval()' in quanto ha molte conseguenze pericolose. Invece, consiglierei di usare 'parseInt()'. – winhowes

+0

Grazie mille .. – Roni

4

basta usare:

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

..dove il '4000' è m.second

6

È possibile utilizzare

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

Ho fatto un si mple demo che richiede X numero di secondi e reindirizza per impostare url. Se non vuoi aspettare fino alla fine del conteggio, basta fare clic sul contatore per reindirizzare senza tempo. Contatore semplice che farà il conto alla rovescia mentre pulsa il tempo nella parte centrale della pagina. Puoi eseguirlo onclick o mentre è caricata una pagina.

LIVE DEMO ONLOAD

LIVE DEMO ONCLICK

I repo anche fatto github per questo: https://github.com/GlupiJas/redirect-counter-plugin

JS ESEMPIO DI CODICE

// 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 soluzione è quella di utilizzare setTimeout, in questo modo:

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

nota che il risultato è stato memorizzato in timeoutID. Se, per qualsiasi motivo è necessario annullare l'ordine, è sufficiente chiamare

clearTimeout(timeoutID); 
Problemi correlati