每 1 分钟在 chrome 中运行一次脚本

Run a script in chrome every 1 minute

本文关键字:一次 脚本 运行 分钟 chrome      更新时间:2023-09-26

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

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

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

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

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

查看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)长时间的循环来阻止浏览器的其余部分处理事件,因此你触发的点击事件永远不会被处理。 相反,您可以使用计时器重复执行某些操作。

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

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

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

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

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