【问题标题】:Simulate a mouse-click in Javascript [duplicate]在Javascript中模拟鼠标单击[重复]
【发布时间】:2014-01-03 08:02:03
【问题描述】:

寻找一个 Javascript,它可以用鼠标左键单击由 ID 或 CLASS 名称标识的图像/按钮,等待 x 秒并重复。并且能够在开发者工具 Console tap、chrome 和 firefox 中运行。

尝试自己编写,因为我认为这将是一个简单的代码,但经过 2 小时的反复试验没有运气,我开始用尽选项。

希望 Javascript 专业人士有时间帮助一个非常新手的用户 ;)

谢谢

【问题讨论】:

标签: javascript


【解决方案1】:

怎么了

document.getElementById(id).click()

【讨论】:

【解决方案2】:

如果你愿意使用 jQuery,你可以使用这个简单的函数来做:

window.setInterval(function(){
    $("#divToClick").trigger("click");
}, 1000);

每 1000 毫秒或 1 秒调用一次

对于纯 Javascript 解决方案,您应该看看 How to trigger event in Javascript

或者,如果您对支持 IE 不感兴趣,您可以使用简单的方法,使用 Event() 构造函数和 event.dispatch()

【讨论】:

  • .trigger 救了我的命。
【解决方案3】:

您可以使用 event constructordispatchEvent

var support = true; // check if event constructor is supported

try {
    if (new MouseEvent('click', {bubbles: false}).bubbles !== false) {
        support = false;
    } else if (new MouseEvent('click', {bubbles: true}).bubbles !== true) {
        support = false;
    }
} catch (e) {
    support = false;
}

setInterval(function() {
    if (support) {
        var event = new MouseEvent('click');
    }else{
        var event = document.createEvent('Event');
        event.initEvent('click', true, true);
    }
    elem.dispatchEvent(event);
},1000);

FIDDLE

【讨论】:

  • 尝试了您在 Fiddle 上编写的 Javascript 代码,但没有单击图像并且没有返回错误。只需输出 44 并点击。
  • 当然用实际ID替换了测试。
  • @zyl1647 - 这就是控制台在一遍又一遍地记录相同值时所做的事情,它只是在前面添加一个数字来表示它被记录到控制台的次数,试试这个看看-> jsfiddle.net/hLnTy/4
  • 遗憾的是,当我在脚本运行时手动单击图像时,会输出 [18, 18, 4, 3, 200, Array[3], "DBBBACCDECCD"]
  • @zyl1647 - 上面发布的小提琴是否实际输出,以及在什么浏览器中
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-12-14
  • 2011-03-08
  • 2010-12-16
  • 2011-01-25
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多