[英]Script execution doesn't stop when loop condition is false
最近,我寫了一個用於自動下注csgojustice的用戶腳本。 這里是:
var delay = 10000
var btBet = document.getElementById("make-bet");
var loop = true
var input=document.createElement("input");
input.type="button";
input.value="Start";
input.onclick = start;
input.setAttribute("style", "font-size:18px;position:absolute;top:120px;right:40px;");
document.body.appendChild(input);
var input=document.createElement("input");
input.type="button";
input.value="Stop";
input.onclick = stop;
input.setAttribute("style", "font-size:18px;position:absolute;top:120px;right:130px;");
document.body.appendChild(input);
function start() {
loop = true;
roll();
}
function roll() {
if (loop === true) {
btBet.click();
refreshIntervalId = setInterval(roll2, delay); }
}
function roll2() {
btBet.click();
clearInterval(refreshIntervalId)'
roll()
}
function stop() {
loop = false;
}
當我單擊開始按鈕時,它開始執行。 但是當我單擊“停止”按鈕時,它仍然執行。 但是if (loop === true)
仍然存在, if (loop === true)
當loop
為false
,它不會停止。
我似乎無法遇到您的問題-該腳本對我來說很好用。
但是我已經修復了一些問題。
roll2
功能。 setInterval
,則可以使用setTimeout
而不必每次都清除它 stop
時clearTimeout
var delay = 1000;
var btBet = document.getElementById("make-bet");
var loop = true;
var input=document.createElement("input");
input.type="button";
input.value="Start";
input.onclick = start;
input.setAttribute("style", "font-size:18px;position:absolute;top:120px;right:40px;");
document.body.appendChild(input);
var input=document.createElement("input");
input.type="button";
input.value="Stop";
input.onclick = stop;
input.setAttribute("style", "font-size:18px;position:absolute;top:120px;right:130px;");
document.body.appendChild(input);
function start() {
loop = true;
roll();
}
function roll() {
if (loop === true) {
console.log("roll");
refreshIntervalId = setTimeout(roll, delay);
}
}
function stop() {
loop = false;
clearTimeout(refreshIntervalId);
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.