javascript - 为什么在我运行注入脚本的 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 循环使页面超载,所以我添加了等待和睡眠,这再次给出了同样的问题
解决方案
您正在做我们所说的“忙等待”,这意味着您不仅要等待,还可以通过使线程在空循环中保持忙碌来阻塞线程执行,如果游戏使用相同的线程,那么它也会被阻塞,您应该可能尝试使用
setTimeout()
甚至
setInterval()
如果你想定期运行代码,如果这不是问题,我真的无能为力,因为我不知道游戏是如何工作的。
推荐阅读
- requirejs - ESLint 为 define() 禁用 max-len 规则
- ios - 如何真正阻止音频快速播放
- regex - 如何 URL 文件夹路径正则表达式?
- ruby-on-rails - ActiveAdmin:如何使用文本字段而不是颜色选择器来输入颜色?
- xslt-2.0 - 使用 XSLT2.0 进行连接时删除重复项
- c# - 如何获取当前选定键盘布局的显示名称
- java-8 - Java 浮点值四舍五入
- ruby-on-rails - NameError: 未初始化的常量GoalsController::Goal ruby-on-rails
- string - Cut two fields from a for loop string and use each of them to grep two records from a file
- android - 请求失败,状态码 500 React Native