js实现挂机
使用 setInterval 实现定时任务
通过 setInterval 可以周期性执行特定代码,适用于模拟挂机操作。例如每 5 秒执行一次动作:

const intervalId = setInterval(() => {
console.log("执行挂机任务...");
// 这里添加具体操作,如点击按钮、发送请求等
}, 5000);
// 停止挂机
// clearInterval(intervalId);
监听页面元素自动交互
结合 MutationObserver 监听 DOM 变化并触发操作,适用于需要动态响应的场景:

const observer = new MutationObserver((mutations) => {
const targetButton = document.querySelector("#auto-btn");
if (targetButton) {
targetButton.click(); // 自动点击按钮
}
});
observer.observe(document.body, { childList: true, subtree: true });
模拟键盘/鼠标事件
通过 dispatchEvent 触发事件,实现自动化输入或点击:
// 模拟键盘输入
const inputEl = document.querySelector("#input-field");
inputEl.dispatchEvent(new KeyboardEvent("keydown", { key: "A" }));
// 模拟鼠标点击
const buttonEl = document.querySelector("#submit-btn");
buttonEl.dispatchEvent(new MouseEvent("click"));
使用 requestIdleCallback 优化性能
在浏览器空闲时执行低优先级任务,避免阻塞主线程:
function runIdleTask() {
requestIdleCallback(() => {
console.log("后台挂机中...");
runIdleTask(); // 递归调用保持持续运行
});
}
runIdleTask();
注意事项
- 避免高频操作:间隔时间不宜过短(如低于 1 秒),可能被检测为异常行为。
- 跨域限制:脚本仅对当前页面生效,无法直接操作跨域 iframe 或浏览器标签页。
- 页面刷新:挂机脚本通常在页面刷新后失效,需配合浏览器插件(如 Tampermonkey)持久化。
完整示例(自动点击按钮)
// 每 3 秒点击一次指定按钮
const interval = setInterval(() => {
const btn = document.querySelector("#target-button");
if (btn) btn.click();
}, 3000);
// 10 分钟后停止
setTimeout(() => clearInterval(interval), 600000);






