2011-05-17 24 views
5

¿Cómo simularía un evento de clic con setTimeout? Algo así como:Simular clic con setTimeout en Javascript

<script> 
    window.onload=setTimeout(document.getElementById('mk1').click(),1000); 
</script> 

<a id="mk1" href="some url">click me</a> 
+1

Si realmente quiere simular un clic, entonces casablanca tiene la respuesta correcta. Si solo desea redireccionar la página a una url diferente, entonces asigne un valor a window.location –

Respuesta

12

Actualmente el código llama click() inmediatamente y pasa el valor devuelto a setTimeout. Por el contrario quiere pasar una referencia a la función setTimeout:

window.onload = function() { 
    setTimeout(function() { 
    document.getElementById('mk1').click(); 
    }, 1000); 
}; 

Editar: Como @ThiefMaster señala, también desea pasar una función a onload; aunque parezca funcionar de otra manera, no haría lo que realmente debería estar haciendo.

+2

; debe envolver su llamada en una función anónima. en este momento usted asigna el setTimeout ** return value ** a 'window.onload' – ThiefMaster

+0

@ThiefMaster: Gracias, pasé por alto completamente esa parte del código. :) – casablanca

+0

"parece que funciona de otra manera": Sí, pero no se ejecuta, pero inmediatamente en ese caso, e intentará llamar a un número entero cuando se active el fuego – ThiefMaster

1

document.getElementById('mk1').click() está evaluando cuándo se ejecuta primero la secuencia de comandos. Necesita convertirlo en una función y pasarlo como el primer parámetro.

Cuestiones relacionadas