首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >触发鼠标点击和随机间隔

触发鼠标点击和随机间隔
EN

Stack Overflow用户
提问于 2017-01-03 18:38:42
回答 4查看 1.8K关注 0票数 4

我试图自动完成一个任务,在那里我必须不断地做鼠标左键点击一个手图标。我可以在一个固定的时间框架内这样做,例如32秒和756毫秒,但我需要一个随机的时间框架。例如,如果我们可以增加2-3秒后,每鼠标左键点击。有人能指导我如何使点击间隔随机吗?我在用Chrome。

代码语言:javascript
复制
setInterval(function(){ 
    $( "[id^='hand_'].handIcon").trigger('click');
}, 32756);
EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2017-01-03 18:43:11

即使您在Math.random上使用setInterval,它也只注册一次,具有特定的随机值。

有两种选择:

  • 运行一次,然后使用新的随机时间框架重新注册(使用clearInterval删除旧的)
  • 运行每个x并添加一个随机检查,以查看是否运行。

例如:在第二个案件中:

代码语言:javascript
复制
setInterval(function() { 
  if (Math.random() > 0.8)
    $( "[id^='hand_'].handIcon").trigger('click');
}, 200);

这将运行每200毫秒,但只有0.8次,例如,平均每250毫秒,但随机。当然,你可以调整数字。

第一个例子,因为我今天真的很受鼓舞:

代码语言:javascript
复制
let action = () => $( "[id^='hand_'].handIcon").trigger('click');
let old, register = () => {
  if (old) clearInterval(old);
  old = setInterval(() => {
    action();
    register(); // re-register
  }, 32756 + 3000*Math.random() - 1500)
};
register();
票数 2
EN

Stack Overflow用户

发布于 2017-01-03 18:47:07

使用一个递归函数,它在setTimeout之后调用自己。这将无限地运行,每次随机间隔在32000到35000毫秒之间(32到35秒)。

代码语言:javascript
复制
var clickHand = function() {
  $("[id^='hand_'].handIcon").trigger('click');
  setTimeout(clickHand, (Math.random() * 3000) + 32000);
}

clickHand();
代码语言:javascript
复制
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

票数 3
EN

Stack Overflow用户

发布于 2017-01-03 18:49:32

您的答案是setTimeout作为带有随机延迟的回调

代码语言:javascript
复制
var timeout = function(callback) {
   var time = Math.floor(Math.random()*32756);
   return setTimeout(function(){
      callback();
      timeout(callback);
   }, time)
};

timeout(function(){
   $( "[id^='hand_'].handIcon").trigger('click');
})
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41450212

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档