1. ホーム
  2. javascript

[解決済み] JavaScriptでクリックをシミュレートするには?

2022-03-14 14:52:46

質問

JavaScriptを使って要素のクリックをシミュレートするにはどうしたらいいのでしょうか?

現在、私は

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>

でも、うまくいかない :(

何か思い当たることはありますか?

解決方法は?

私が作ったのは、こんな感じです。とてもシンプルですが、うまくいっています。

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);
  }
}

使用方法

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