Quiero simular un clic en una etiqueta de anclaje con todos los extras, como el manejo correcto del objetivo.¿Cómo puedo simular un clic en una etiqueta de anclaje?
Parece haber un método "[clic()] [3]" para el objeto DOM del ancla, pero no todos los navegadores lo admiten. Firefox lanza este error:
Error: anchorObj.click is not a function
También funciona extrañamente en Opera 10 y Konqueror, haciendo clics infinitas a pasar cuando se llama dentro del manejador onclick de un div rodea. Supongo que solo IE8 funciona bien con eso. De todos modos, no lo quiero, ya que los navegadores principales en su mayoría tienen problemas con él.
He encontrado esta solución alternativa para Firefox en los foros de Mozilla:
var evt = document.createEvent("MouseEvents");
evt.initMouseEvent("click", true, true, window,
0, 0, 0, 0, 0, false, false, false, false, 0, null);
anchorObj.dispatchEvent(evt);
Esto parece demasiado feo e incómodo para mí. No sé qué tan compatible es y quiero evitar escribir el código específico del navegador tanto como sea posible.
No puedo usar location.href = anchorObj.href; porque no maneja el atributo "objetivo". Puedo hacer una codificación difícil en función del valor del objetivo, pero me gustaría evitar eso también.
Hay una sugerencia de cambiar a JQuery, pero no estoy seguro de qué tan bien maneja la propiedad de destino, ya que no he trabajado con ella antes.
Posible duplicado de [JavaScript: invocación de click-event de una etiqueta ancla desde javascript] (http://stackoverflow.com/questions/980709/javascript-invoking-click-event-of-an-anchor-tag-from -javascript) –