每隔1分钟运行一次chrome脚本

时间:2016-03-12 18:50:46

标签: javascript google-chrome google-chrome-devtools

我试图制作一个从3中挑选1个随机类名的脚本 每隔1分钟点击所选课程的按钮 到目前为止,我创建了单击按钮的脚本:

  setTimeout(function () {
    $(".btn-danger").trigger("click");
  }, 100);

问题是如果我把它放了一段时间(真实) 网站卡住,然后浏览器崩溃。

我也不知道如何让它选择随机类,所以我把它放在其中一个。

很高兴在这里得到一些帮助:D

3 个答案:

答案 0 :(得分:3)

查看setInterval()一遍又一遍地运行。您可以使用Math.floor(Math.random() * 3)生成0到2的随机索引。

例如,您可以选择一个随机类名:

var classes = ["classA", "classB", "classC"];

function selectRandomArrayElement(array) {
    return array[Math.floor(Math.random() * array.length)];
}

var rand = selectRandomArrayElement(classes);

所以,把它们放在一起:

var classes = ["classA", "classB", "classC"];

function selectRandomArrayElement(array) {
    return array[Math.floor(Math.random() * array.length)];
}

// click on a the object with a random class name every minute
setInterval(function() {
    var rand = selectRandomArrayElement(classes);
    $("." + rand).trigger("click");
}, 1000*60);

在Javascript中,您无法使用while(true)这样的长持续时间循环阻止浏览器的其余部分处理事件,因此您触发的点击事件永远不会被处理。相反,你使用计时器重复做一些事情。

答案 1 :(得分:1)

您正在寻找setInterval而不是setTimeout,它会以您指定的时间间隔无限期地调用回调。

setInterval(function () {
  $(".btn-danger").trigger("click");
}, 60000);

应该适合你。 while(true)崩溃了您的浏览器,因为您正在创建一个阻止执行任何其他代码的无限循环。

答案 2 :(得分:0)

setTimeout使用毫秒并且只发生一次。使用setInterval和一秒* 60来获取一分钟。

var minute = 1000 * 60;
setInterval(function() {   $(".btn-danger").trigger("click");
  }, minute);