我只是想知道如何使用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>

但是它不起作用:(

有什么 idea 吗?

推荐答案

这是我做的.这很简单,但很有效:

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

Javascript相关问答推荐

为什么剧作家在导航时会超时?

CSS背景过滤器忽略转换持续时间(ReactJS)

在JavaScript中逐一播放随机生成的音频文件数组

使用JavaScript更改json值顺序

如何在react-Router-dom 6中Forking 路由?

无法在page. evalve()内部使用外部函数

如何分配类型脚本中具有不同/额外参数的函数类型

警告!合同执行期间遇到错误[执行已恢复](Base Layer 2)

Chromium会将URL与JS一起传递到V8吗?

编剧如何获得一个div内的所有链接,然后判断每个链接是否都会得到200?

Chart.js-显示值应该在其中的引用区域

我在Django中的视图中遇到多值键错误

在HTML语言中调用外部JavaScript文件中的函数

传递方法VS泛型对象VS事件特定对象

我正在试着做一个TicTacToe Ai来和我玩.但是,我试着在第一个方块被点击时出现一个X,然后在第二个方块之后出现一个O

在Java脚本中录制视频后看不到曲目

用于测试其方法和构造函数的导出/导入类

我不知道如何纠正这一点.

使用CEPRESS截取时,cy.Wait()在等待5000ms的第一个路由请求时超时

我怎样才能得到一个数组的名字在另一个数组?