2012-01-10 13 views
6

Tengo un enlace (etiqueta 'a'). Estoy tratando de hacer clic usando javascript. Mientras .click(); funciona bien en FF en IE falla en Chrome. (Chrome dice que el objeto no tiene el método de clic).Simular un clic en la etiqueta 'a' en Chrome

activar el 'onclick' o redireccionar al 'href' no hará el trabajo.

alguna idea sobre cómo hacer esto? Preferiblemente no obtendría una biblioteca completa solo por esto.

Respuesta

1
var event = document.createEvent("MouseEvents"); 
      event.initMouseEvent("click", true, true, window, 
       0, 0, 0, 0, 0, 
       false, false, false, false, 
       0, null); 
      element.dispatchEvent(event); 

debe trabajar en cromo

+0

no, es solo IE –

+0

@ Dr.Molle - mi error, respuesta editada. – amal

1

Entiendo que no quiere una biblioteca, pero la huella de este es bastante pequeña, puede usar event.simulate para esto. es una lib de PrototypeJS, pero estoy seguro de que la transferencia sería muy fácil.

utilizarlo en el prototipo que podría llamarse:

$('my_anchor').simulate('click'); 

Funciona entre navegadores sin problemas.

+0

Gracias por el recordatorio de usar sólo el método de la biblioteca. .. en el caso de mootools, .fireEvent ('click') es el correcto. – joelhardi

-1

Si conoces jQuery simplemente crear una función anónima y detectar el evento onclick. Necesitará especificar una clase o una identificación para usted href,

p. HTML:

<a href='' id='clickMe'>Click here</a> 

jQuery:

$(function() { 
    $("#clickMe").click(function() { 
    ... the action you wish to perform ... 
    }) 
}) 

Espero que esto ayude. de Dave

+0

esto solo escucha por un evento de clic, el operador quiere 'simular' un clic. – epoch

+0

Punto válido, ¡debería haber leído el mensaje de opción más a fondo! – detheridge02

0

utilizo este:

function dispatchEvent(el, e) 
{ 
    // console.log("dispatching"); 

    if ("createEvent" in document) 
    { 
     var evt = document.createEvent("HTMLEvents"); 
     evt.initEvent(e, false, true); 
     el.dispatchEvent(evt); 
    } 
    else 
    { 
     el.fireEvent("on" + e); 
    } 

} 

dispatchEvent(document.getElementById("mylink"), "click"); 
Cuestiones relacionadas