2011-08-06 25 views
9

la estructura html:esperando dos segundos y luego redirigir automáticamente otra página en jquery?

<div class="user_register border_y"> 
<div> 
<span style="color:green;"> after two seconds then auto redirect </span><br><br> 

<a href="http://example.com/down/test.html">if you don't want to wait you can click this。</a></div></div> 

quiero usar jQuery para obtener: después de dos segundos y luego automático redirigen a la página a etiqueta. ¿Cómo debería hacer?

Respuesta

14

Ni siquiera necesita jQuery; JS vainilla funciona bien ...

<a id="link" href="http://example.com">Go NOW!!!</a> 

JS:

window.setTimeout(function() { 
location.href = document.getElementsByClassName("user_register border_y")[0].getElementsByTagName("a")[0].href; 
}, 2000); 

getElementsByClassName no funciona en todos los navegadores; así que asegúrese de proporcionar un fallback

+3

setInterval no es la forma correcta de hacer esto. Desea un temporizador de una sola vez, no un temporizador de repetición que sería setTimeout, no setInterval. – jfriend00

+1

Tan elegante como jQuery, soy un gran fan de no presentarlo a menos que sea una página que lo requiera (es decir, muchas acciones/eventos con guiones). Sin embargo, sugeriría setTimeout en su lugar. – Kris

+0

Tienes razón; Escuché algo sobre que setTimeout es malo, pero estoy pensando que fue una tontería. Actualizado. –

12

Uso setTimeout:

setTimeout(function() { 
    window.location.href = $("a")[0].href; 
}, 2000); 
+0

karim79, ¿podría decirme por qué el 2000 no es 2. porque son dos segundos – zhuanzhou

+0

@zhuanzhou - 'setTimeout' espera que el argumento esté en milisegundos, y 2000 milisegundos == 2 segundos. – karim79

+0

lo tengo, muchas muchas gracias. – zhuanzhou

11

Por qué el uso de JavaScript?

<head> 
    <meta http-equiv="refresh" content="2;url=http://example.com/down/test.html"> 
</head> 

<body> 

    <div class="user_register border_y"> 
    <div> 
    <span style="color:green;"> after two seconds then auto redirect </span><br><br> 

    <a href="http://example.com/down/test.html">if you don't want to wait you can click this。</a></div></div> 
+0

lo siento, la página es dinámica – zhuanzhou

+0

'meta refresh' no es confiable, p. en IE puedo apagarlo. – Mrchief

+2

@Mrchief: Bueno, también puedes desactivar JavaScript. ; o) – user113716

3

A continuación se muestra un script sencillo con sede fuera de su descripción:

function redirect(){ 
    window.location = $('a').attr('href'); 
} 

setTimeout(redirect, 2000); 

Demostración: http://jsfiddle.net/KesU9/

+0

Edité su código para leer 'setTimeout (redirect, 2000)'. El código anterior tenía 'redirect()' que habría ejecutado la función de redirección tan pronto como se estableció el tiempo de espera, en lugar de simplemente asignar la redirección al tiempo de espera. –

+0

Vaya, buena captura. – RobB

1

Usar este código simple en OnLoad cuerpo

<body onLoad="setTimeout(location.href='http://www.newpage.com', '2000')"> 
0

uso de JavaScript para redirigir Por ejemplo:

<script type="text/javascript"> 
var time = 15; // Time coutdown 
var page = "http://www.redirect-url.com/"; 
function countDown(){ 
time--; 
gett("timecount").innerHTML = time; 
if(time == -1){ 
window.location = page; 
} 
} 
function gett(id){ 
if(document.getElementById) return document.getElementById(id); 
if(document.all) return document.all.id; 
if(document.layers) return document.layers.id; 
if(window.opera) return window.opera.id; 
} 
function init(){ 
if(gett('timecount')){ 
setInterval(countDown, 1000); 
gett("timecount").innerHTML = time; 
} 
else{ 
setTimeout(init, 50); 
} 
} 
document.onload = init(); 
</SCRIPT> 

añadir este código después pestaña cuerpo

<h3>Auto redirect after <span id="timecount"></span> second(s)!</h3> 
Cuestiones relacionadas