Tampermonkey 脚本无法修改表单控件
Tampermonkey script failing to amend form controls
我正在为博彩网站制作脚本以使其自动化,但我的脚本无法正常工作。
我想自动点击 ID 为 #box38
、#playBtn
、#resetStats
的按钮。我还希望当我输了时,将赌注增加到 0.00000004
,当我赢时,将其重置为 0.00000001
,但这也不起作用,我不知道为什么。
有 2 个 ID 为 #currentWins
和 #currentLossess
的文本。为什么那不起作用?
我只想让这些起作用:
- 点击按钮没有问题
- increase/decrease下注没问题
代码根本不起作用。我也在使用 TamperMonkey,我没有忘记添加最新版本的 jQuery
HTML:
三个按钮:
<a id="resetStats">RESET</a>
<div class="box" id="box38" onclick="Game.play(38); return false;"></div>
<button class="btn blue" id="playBtn" onclick="Game.play(0); >LET'S GO!</button>
和 div 标签中的 2 个文本:
<div class="input green" id="currentWins">0</div>
<div class="input red" id="currentLosses">0</div>
function doit() {
window.setInterval(event1, 2000);
$("#playBtn").click();
function event1() {
$("#box38").click();
(function() {
$("#resetStats").click();
$("#playBtn").click();
setTimeout(arguments.callee, 5000);
})();
}
function winloss() {
var wins = $("div#currentWins").text();
var loss = $("div#currentLosses").text();
if (wins == 1) {
document.getElementById("betAmount").value = "0.00000001";
doit();
} else if (loss == 1) {
document.getElementById("betAmount").value = "0.00000004";
doit();
}
}
}
经过一番调查,我发现存在多个问题。
doit
从未调用过。
winloss
从未调用过。
- 您在完成
winloss
后调用了 doit
,即使查看您的代码,您打算单击 #box38
一次。
- 您调用了
$("#playBtn").click
,尽管它已经在 event1
私有函数中自动循环。
- 在您提供的 HTML 中,没有
#betAmount
与 value
属性。
- 在您提供的 HTML 中,
#resetStats
作为 <a>
,但它很可能是一个按钮。
所以希望我正确阅读了你的代码和问题,并且重构了它:
function doit() {
event1()
function event1() {
$("#box38").click();
winloss();
(function() {
winloss()
$("#resetStats").click();
$("#playBtn").click();
setTimeout(arguments.callee, 5000);
})();
}
function winloss() {
const lost = $("div#currentLosses").text() != 0
if (lost) {
document.getElementById("betAmount").value = "0.00000004";
} else {
document.getElementById("betAmount").value = "0.00000001";
}
}
}
doit()
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<button id="resetStats" onclick="$('div#currentWins').text(0);$('div#currentLosses').text(0)">RESET</button>
<script>
let Game = {
play: function(a) {
if (a == 38) {
return false
}
setTimeout(function() {
let wins = $("div#currentWins").text()
let losses = $("div#currentLosses").text()
if (Math.random() > 0.5) {
wins++
} else {
losses++
}
$("div#currentWins").text(wins)
$("div#currentLosses").text(losses)
}, 4000) //Simulating API delay
}
}
</script>
<div class="box" id="box38" onclick="Game.play(38); return false;"></div>
<button class="btn blue" id="playBtn" onclick="Game.play(0);">LET'S GO!</button>
<div class="input green" id="currentWins">0</div>
<div class="input red" id="currentLosses">0</div>
<input id="betAmount" value="0">
我正在为博彩网站制作脚本以使其自动化,但我的脚本无法正常工作。
我想自动点击 ID 为 #box38
、#playBtn
、#resetStats
的按钮。我还希望当我输了时,将赌注增加到 0.00000004
,当我赢时,将其重置为 0.00000001
,但这也不起作用,我不知道为什么。
有 2 个 ID 为 #currentWins
和 #currentLossess
的文本。为什么那不起作用?
我只想让这些起作用:
- 点击按钮没有问题
- increase/decrease下注没问题
代码根本不起作用。我也在使用 TamperMonkey,我没有忘记添加最新版本的 jQuery
HTML:
三个按钮:
<a id="resetStats">RESET</a>
<div class="box" id="box38" onclick="Game.play(38); return false;"></div>
<button class="btn blue" id="playBtn" onclick="Game.play(0); >LET'S GO!</button>
和 div 标签中的 2 个文本:
<div class="input green" id="currentWins">0</div>
<div class="input red" id="currentLosses">0</div>
function doit() {
window.setInterval(event1, 2000);
$("#playBtn").click();
function event1() {
$("#box38").click();
(function() {
$("#resetStats").click();
$("#playBtn").click();
setTimeout(arguments.callee, 5000);
})();
}
function winloss() {
var wins = $("div#currentWins").text();
var loss = $("div#currentLosses").text();
if (wins == 1) {
document.getElementById("betAmount").value = "0.00000001";
doit();
} else if (loss == 1) {
document.getElementById("betAmount").value = "0.00000004";
doit();
}
}
}
经过一番调查,我发现存在多个问题。
doit
从未调用过。winloss
从未调用过。- 您在完成
winloss
后调用了doit
,即使查看您的代码,您打算单击#box38
一次。 - 您调用了
$("#playBtn").click
,尽管它已经在event1
私有函数中自动循环。 - 在您提供的 HTML 中,没有
#betAmount
与value
属性。 - 在您提供的 HTML 中,
#resetStats
作为<a>
,但它很可能是一个按钮。
所以希望我正确阅读了你的代码和问题,并且重构了它:
function doit() {
event1()
function event1() {
$("#box38").click();
winloss();
(function() {
winloss()
$("#resetStats").click();
$("#playBtn").click();
setTimeout(arguments.callee, 5000);
})();
}
function winloss() {
const lost = $("div#currentLosses").text() != 0
if (lost) {
document.getElementById("betAmount").value = "0.00000004";
} else {
document.getElementById("betAmount").value = "0.00000001";
}
}
}
doit()
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<button id="resetStats" onclick="$('div#currentWins').text(0);$('div#currentLosses').text(0)">RESET</button>
<script>
let Game = {
play: function(a) {
if (a == 38) {
return false
}
setTimeout(function() {
let wins = $("div#currentWins").text()
let losses = $("div#currentLosses").text()
if (Math.random() > 0.5) {
wins++
} else {
losses++
}
$("div#currentWins").text(wins)
$("div#currentLosses").text(losses)
}, 4000) //Simulating API delay
}
}
</script>
<div class="box" id="box38" onclick="Game.play(38); return false;"></div>
<button class="btn blue" id="playBtn" onclick="Game.play(0);">LET'S GO!</button>
<div class="input green" id="currentWins">0</div>
<div class="input red" id="currentLosses">0</div>
<input id="betAmount" value="0">