454 Stimmen

Wie simuliert man einen Klick mit JavaScript?

Ich frage mich nur, wie ich JavaScript verwenden kann, um einen Klick auf ein Element zu simulieren.

Derzeit habe ich:

function simulateClick(control) {
  if (document.all) {
    control.click();
  } else {
    var evObj = document.createEvent('MouseEvents');
    evObj.initMouseEvent('click', true, true, window, 1, 12, 345, 7, 220, false, false, true, false, 0, null );
    control.dispatchEvent(evObj);
  }
}

<a href="http://www.google.com" id="mytest1">test 1</a><br>

<script type="text/javascript">
    simulateClick(document.getElementById('mytest1'));
</script>

Aber es funktioniert nicht :(

Irgendwelche Ideen?

647voto

StudioTime Punkte 20846

Wie wäre es mit etwas Einfachem wie:

document.getElementById('elementID').click();

Unterstützt sogar vom IE.

526voto

KooiInc Punkte 111454

Das habe ich mir ausgedacht. Es ist ziemlich einfach, aber es funktioniert:

function eventFire(el, etype){
  if (el.fireEvent) {
    el.fireEvent('on' + etype);
  } else {
    var evObj = document.createEvent('Events');
    evObj.initEvent(etype, true, false);
    el.dispatchEvent(evObj);
  }
}

Verwendung:

eventFire(document.getElementById('mytest1'), 'click');

85voto

BradBrening Punkte 5362

Haben Sie in Betracht gezogen, jQuery zu verwenden, um die Browsererkennung zu umgehen? Mit jQuery, wäre es so einfach wie:

$("#mytest1").click();

32voto

mnishiguchi Punkte 1913
var elem = document.getElementById('mytest1');

// Simulate clicking on the specified element.
triggerEvent( elem, 'click' );

/**
 * Trigger the specified event on the specified element.
 * @param  {Object} elem  the target element.
 * @param  {String} event the type of the event (e.g. 'click').
 */
function triggerEvent( elem, event ) {
  var clickEvent = new Event( event ); // Create the event.
  elem.dispatchEvent( clickEvent );    // Dispatch the event.
}

Referenz

15voto

Adam Salma Punkte 1618

Durch die Verwendung von jQuery könnten Sie sich eine Menge Platz sparen. Sie brauchen nur zu verwenden:

$('#myElement').trigger("click")

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X