Javascript 为什么在我运行注入脚本的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

我正在尝试让chrome扩展来玩游戏

我正在使用我的扩展注入脚本,该扩展可以玩游戏,但是在注入代码后页面会挂起并停止工作

注入的代码是:

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;
  }
}