Javascript 为什么在我运行注入脚本的chrome扩展后页面会停止
我正在尝试让chrome扩展来玩游戏 我正在使用我的扩展注入脚本,该扩展可以玩游戏,但是在注入代码后页面会挂起并停止工作 注入的代码是:Javascript 为什么在我运行注入脚本的chrome扩展后页面会停止,javascript,google-chrome-extension,Javascript,Google Chrome Extension,我正在尝试让chrome扩展来玩游戏 我正在使用我的扩展注入脚本,该扩展可以玩游戏,但是在注入代码后页面会挂起并停止工作 注入的代码是: function sleep(milliseconds) { const date = Date.now(); let currentDate = null; do { currentDate = Date.now(); } while (currentDate - date < milliseconds); } function
function sleep(milliseconds) {
const date = Date.now();
let currentDate = null;
do {
currentDate = Date.now();
} while (currentDate - date < milliseconds);
}
function wait() {
while (
!String(document.getElementById("showpoke").innerHTML).includes(
"Try moving to another spot."
) ||
!document.getElementById("catch")
) {
sleep(1000);
}
}
document.getElementById("dr-n").click();
wait();
document.getElementById("dr-s").click();
但是,这是由于continues while循环导致页面过载,因此我添加了wait和sleep,这再次导致了相同的问题您正在执行我们称之为“busy wait”的操作,这意味着您不只是等待,而是通过在空循环中保持线程繁忙来阻止线程执行,如果游戏使用相同的线程,那么它也将被阻止,你可能应该试着使用
setTimeout()
甚至
setInterval()
如果你想周期性地运行代码,如果这不是问题,我真的帮不了你,因为我不知道游戏是如何运行的。但是超时和设置间隔不能解决问题,请看我只想运行此代码
var run=true;while(run){document.getElementById(“dr-n”).click,2000;if(document.getElementById(“catch”){document.getElementById(“catch”).click();run=false;}}
但是如果我们运行此操作,页面将挂起,因为我们通过在while循环中运行它来重载页面。您需要用一个超时或间隔来替换while循环,这样您就不会丢失它
while (run) {
document.getElementById("dr-n").click, 2000;
if (document.getElementById("catch")) {
document.getElementById("catch").click();
run = false;
}
}