2012-03-26 19 views
25

Tengo un sitio web que se desliza a una "sección" llamada blog en mi HTML. Quiero que el usuario simplemente vea la página por un breve segundo o 2 y luego redirija al motor de mi blog.¿Tiempo de redirección retrasada?

¿Recomendar un desvío temporal de redirigido?

Si puedo redirigir con un tiempo de retraso sobre la base de un clic del li blog:

<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> 

ACTUALIZACIÓN: Esto es tan extraño cuando el HTML5 se desliza a la sección de bloquear la página todavía está rindiendo con todo el código y, por lo tanto, JS debe activarse mediante el evento click y luego ejecutar el redireccionamiento basado en el temporizador.

Las soluciones funcionan en JS a medida que aparecen los cuadros de alerta. Me pregunto por qué no funcionan en mi página?

Respuesta

52

Editar:

El problema que enfrentamos es que HTML5 es todo en una página de índice. Entonces necesito el temporizador para comenzar al hacer clic en el enlace del blog.

intentar llamar al setTimeout dentro de un controlador de clic en el enlace del 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. 

}); 

Intente utilizar setTimeout función como la de abajo,

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

El problema que enfrento es que HTML5 está todo en una página de índice. Entonces necesito el temporizador para comenzar al hacer clic en el enlace del blog. –

+0

@ sp-1986 vea mi respuesta actualizada que llamará a la función setTimeout después de hacer clic en el enlace del blog y llamará a la página del blog después de 2 segundos. –

+0

revisa la edición ... no es técnicamente un enlace en HTML5, ¿o sí? –

3

Incluir este código en algún lugar cuando se desliza a su 'sección' llamada blog.

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

Dónde myLink es el ID de su href.

+0

El problema al que me enfrento es que HTML5 está todo en una sola página de índice. Entonces necesito el temporizador para comenzar al hacer clic en el enlace del blog. –

+0

Ah, está bien. Editando para reflejar Edición: @ sp-1986, pruebe la respuesta recientemente editada para conocer el tamaño. –

+0

Elliot mi amigo, he agregado una edición. No sé si el evento click funcionará para un LI? –

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

Aquí 2 es la demora en segundos.

+2

+1 para la solución que ni siquiera requiere que JavaScript esté habilitado. – jfriend00

+1

El problema que enfrento es que HTML5 está todo en una página de índice. Entonces necesito el temporizador para comenzar al hacer clic en el enlace del blog. –

+0

+1 solución increíblemente simple. – praneybehl

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

Puede crear fácilmente redirecciones temporizadas con JavaScript. Pero le sugiero que use location.replace ('url') en lugar de location.href. Impide al navegador insertar el sitio en el historial. Encontré this JavaScript redirect herramienta. Creo que podrías usar esto.

Ejemplo de código (con 5 segundos de retraso):

<!-- 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 recibo XDomainRequest no encontrado:/ – shaneonabike

+0

@shaneonabike mi mal, acabo de actualizar para que funcione. –

0

Usted puede incluir esto directamente en su botón R. Funciona muy bien. Espero que te sea útil. onclick = "setTimeout ('location.href = ../../dashboard.xhtml;', 7000);"

+0

\ '' '' ../../ dashboard.xhtml' \ '' 'No olvide poner el símbolo al principio al final –