我试图制作一个从3中挑选1个随机类名的脚本 每隔1分钟点击所选课程的按钮 到目前为止,我创建了单击按钮的脚本:
setTimeout(function () {
$(".btn-danger").trigger("click");
}, 100);
问题是如果我把它放了一段时间(真实) 网站卡住,然后浏览器崩溃。
我也不知道如何让它选择随机类,所以我把它放在其中一个。
很高兴在这里得到一些帮助:D
答案 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);