2012-03-26 20 views
25

Ho un sito web che scorre in una "sezione" chiamata blog nel mio HTML. Voglio che l'utente veda semplicemente la pagina per un breve secondo o 2 poi reindirizza al motore del mio blog.reindirizzamento a tempo ritardato?

Si prega di suggerire un reindirizzamento ritardato?

Se posso reindirizzare con un tempo di ritardo in base al click del blog li:

<li data-target="blog" data-target-activation="click" class="tile icon_add_favourite"> 
      <div> 
      <h2>Blog</h2><h3>13</h3> 
       <script type="text/JavaScript"> 
       &lt;!-- 
        setTimeout("location.href = 'http://www.mysite.co.uk/blog';", 1500); 
       --&gt; 
       </script> 
      </div> 
     </li> 

UPDATE: Questo è sooo strano quando il HTML5 scivola alla sezione di bloccare la pagina è ancora Rendering con tutto il codice e quindi il JS dovrebbe essere attivato dall'evento click, quindi eseguire il reindirizzamento basato sul timer.

Le soluzioni funzionano in JS quando compaiono le finestre di avviso. Mi chiedo perché non funzionano nella mia pagina?

risposta

52

Edit:

Il problema mi trovo di fronte è che HTML5 è tutto su una pagina di indice. Quindi ho bisogno di il timer per iniziare cliccando sul link del blog.

provare a chiamare il setTimeout all'interno di un gestore di clic sul link blog,

$('#blogLink').click (function (e) { 
    e.preventDefault(); //will stop the link href to call the blog page 

    setTimeout(function() { 
     window.location.href = "blog.html"; //will redirect to your blog page (an ex: blog.html) 
    }, 2000); //will call the function after 2 secs. 

}); 

Prova utilizzando setTimeout funzione come qui di seguito,

setTimeout(function() { 
    window.location.href = "blog.html"; //will redirect to your blog page (an ex: blog.html) 
}, 2000); //will call the function after 2 secs. 
+0

Il problema che devo affrontare è che HTML5 è tutto su una pagina di indice. Quindi ho bisogno del timer per iniziare cliccando sul link del blog. –

+0

@ sp-1986 vedere la mia risposta aggiornata che chiamerà la funzione setTimeout dopo aver fatto clic sul collegamento del blog e chiamerà la pagina del blog dopo 2 secondi. –

+0

controlla la modifica ... non è tecnicamente un link in HTML5 è? –

3

Includere questo codice da qualche parte, quando si fa scorrere alla tua 'sezione' chiamata blog.

$("#myLink").click(function() { 
    setTimeout(function() { 
     window.navigate("the url of the page you want to navigate back to"); 
    }, 2000); 
}); 

Dove myLink è l'ID del vostro href.

+0

Il problema che devo affrontare è che HTML5 è tutto su una pagina indice. Quindi ho bisogno del timer per iniziare cliccando sul link del blog. –

+0

Ah, ok. Modifica per riflettere. Modifica: @ sp-1986, prova la risposta appena modificata per la dimensione. –

+0

Elliot, amico mio, ho aggiunto una modifica. Non so se l'evento click funzionerà per una LI? –

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

Qui 2 è ritardo in secondi.

+2

+1 per la soluzione che non richiede nemmeno l'abilitazione di javascript. – jfriend00

+1

Il problema che devo affrontare è che HTML5 è tutto su una pagina indice. Quindi ho bisogno del timer per iniziare cliccando sul link del blog. –

+0

+1 soluzione sorprendentemente semplice. – praneybehl

8
<script type="text/JavaScript"> 
     setTimeout("location.href = 'http://www.your_site.com';",1500); 
</script> 
3

È possibile creare facilmente reindirizzamenti temporizzati con JavaScript. Ma ti suggerisco di utilizzare location.replace ('url') anziché location.href. Impedisce al browser di spingere il sito nella cronologia. Ho trovato lo strumento this JavaScript redirect. Penso che potresti usare questo.

codice di esempio (con 5 secondi di ritardo):

<!-- Pleace this snippet right after opening the head tag to make it work properly --> 

<!-- This code is licensed under GNU GPL v3 --> 
<!-- You are allowed to freely copy, distribute and use this code, but removing author credit is strictly prohibited --> 
<!-- Generated by http://insider.zone/tools/client-side-url-redirect-generator/ --> 

<!-- REDIRECTING STARTS --> 
<link rel="canonical" href="https://yourdomain.com/"/> 
<noscript> 
    <meta http-equiv="refresh" content="5;URL=https://yourdomain.com/"> 
</noscript> 
<!--[if lt IE 9]><script type="text/javascript">var IE_fix=true;</script><![endif]--> 
<script type="text/javascript"> 
    var url = "https://yourdomain.com/"; 
    var delay = "5000"; 
    window.onload = function() 
    { 
     setTimeout(GoToURL, delay); 
    } 
    function GoToURL() 
    { 
     if(typeof IE_fix != "undefined") // IE8 and lower fix to pass the http referer 
     { 
      var referLink = document.createElement("a"); 
      referLink.href = url; 
      document.body.appendChild(referLink); 
      referLink.click(); 
     } 
     else { window.location.replace(url); } // All other browsers 
    } 
</script> 
<!-- Credit goes to http://insider.zone/ --> 
<!-- REDIRECTING ENDS --> 
+0

Hmm ottengo XDomainRequest non trovato:/ – shaneonabike

+0

@shaneonabike my bad, ho appena aggiornato per farlo funzionare. –

0

È possibile includere questo direttamente in buttun. Funziona molto bene. Spero che ti sarà utile. onclick = "setTimeout ('location.href = ../../dashboard.xhtml;', 7000);"

+0

\ '' '' ../../ dashboard.xhtml' \ '' 'Non dimenticare di mettere il simbolo all'inizio alla fine –

Problemi correlati