как использовать JavaScript для симуляции щелчка мышью - PullRequest
0 голосов
/ 13 февраля 2012

Я потратил 2 дня на поиски в Интернете, чтобы найти кросс-браузерное решение для имитации щелчка мышью по HTML <<em> a >, но пока не нашел его.

//-- REGARDING javascript's fireEvent (for IE browsers)
var lvs_event = 'click' ;              
var lvo_event = document.createEventObject();             
argo_target.fireEvent( 'on' + lvs_event , lvo_event );
//-------- does not work on either my winXP IE6 or my winVista IE8


//-- REGARDING javascript's dispatchEvent (for non-IE browsers)
var lvo_event = argo_target.ownerDocument.createEvent('MouseEvents') ;
lvo_event.initMouseEvent( 'click' , ... ) ;
argo_target.dispatchEvent( lvo_event ) ;
//-------- does not work on winVista FF3.6

//-- REGARDING inserting location.href
<a href    = '...'
   target  = '...'
   onclick = '...;location.href = this.href;...'
>
<script>
my_a.onclick();
<\/script>
//-------- works consistently BUT literally calls the onclick handler, ignoring all other <_a_> properties such as href and target

//-- REGARDING various jQuery solutions
$('#my_a').trigger('click');
//OR
$('#my_a').click();
//-------- does not work on any browsers (jQuery IS successfully being used for other features however)

МОЯ ЦЕЛЬ: для нажатия кнопки флеш-памяти для передачи сообщения в js, что, в свою очередь, автоматизирует процесс <<em> a > щелчка.Пусть flash вызывает js, получает необходимую html-информацию от js и возвращает ее во flash, который затем может выполнить as3 geturl, но я бы предпочел подключиться к существующему процессу html-окружения.различные версии ff, т. е. опера, сафари (для win), chrome для winXP и winVista.

1 Ответ

1 голос
/ 13 февраля 2012

Если вы хотите следовать за URL-адресом при запуске, вы должны сказать это в функции:

html:

<a id="link" href="http://google.com">Link</a>
<a id="trigger" href="#">Trigger link</a>  

jQ:

$('#link').click(function(){ alert('hey'); });
$('#trigger').click(function(){
    var $link = $('#link');
    $link.trigger('click');
    // window.location.href = $link.attr('href');
    window.open($link.attr('href'), '_blank'); // Popup blockers might block this
});
...