首页 > 解决方案 > 为什么在我运行注入脚本的 chrome 扩展程序后页面停止

问题描述

我正在尝试制作 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();

我想首先运行的代码是

while (run) {
  document.getElementById("dr-n").click, 2000;
  if (document.getElementById("catch")) {
    document.getElementById("catch").click();
    run = false;
  }
}

但这使用 continue while 循环使页面超载,所以我添加了等待和睡眠,这再次给出了同样的问题

标签: javascriptgoogle-chrome-extension

解决方案


您正在做我们所说的“忙等待”,这意味着您不仅要等待,还可以通过使线程在空循环中保持忙碌来阻塞线程执行,如果游戏使用相同的线程,那么它也会被阻塞,您应该可能尝试使用

setTimeout()

甚至

setInterval()

如果你想定期运行代码,如果这不是问题,我真的无能为力,因为我不知道游戏是如何工作的。


推荐阅读