课
Statistics
Total Installs
62
Last 24h
+10
User Rating
5.0
Description
Versions4
Ratings1
Permissions
Auto-navigate and auto-page-turn script for Yunxuetang learn
🎓 课程自动导航脚本 使用说明
📋 概述
基于 Tampermonkey(油猴) 或 脚本猫(ScriptCat) 的浏览器用户脚本,专为自有在线学习平台内容管理和功能测试设计。打开课程页面即可自动识别当前学习状态,完成自动翻页、等待倒计时、跳过已完成课程等操作。正常不需要配置,点击自动翻页即可。
🚀 快速安装
第一步:安装脚本管理器(二选一)
| 脚本管理器 | 浏览器 | 商店/下载链接 |
|---|---|---|
| Tampermonkey(油猴) | Chrome / Edge | Chrome 网上应用店 |
| Tampermonkey(油猴) | Firefox | Firefox Add-ons |
| 脚本猫(ScriptCat) | Chrome / Edge | Chrome 网上应用店 |
| 脚本猫(ScriptCat) | Firefox | Firefox Add-ons |
💡 推荐:Tampermonkey 是老牌国产兼容方案,脚本猫是国人开发的更轻量的脚本管理器,两者均可使用。
第二步:导入脚本
Tampermonkey:
- 点击浏览器右上角 🐒 图标 → 管理面板
- 点击 + 新建脚本
- 将
auto_navigate.user.js全部内容粘贴进去 - 按
Ctrl + S保存
脚本猫:
- 点击浏览器右上角 🐱 图标 → 管理面板
- 点击 + 新建 或直接拖拽
auto_navigate.user.js到管理页面 - 将
auto_navigate.user.js全部内容粘贴进去 - 按
Ctrl + S保存
第三步:配置网站地址
修改脚本头部的 @match 行,替换为你的课程网站域名:
// @match https://your-domain.com/*
🎛️ 面板功能一览
默认视图(精简模式)
打开课程页面后,右上角只显示最核心的三行:
┌─────────────────────────┐
│ 🎓 课程导航面板 ▶ │ ← 点击展开/折叠,按住拖拽
│ 📘 课程: 新人培训-安全 │
│ ⏱ 剩余时间: 6分30秒 │
└─────────────────────────┘
完整展开视图
点击标题栏后显示全部信息:
┌──────────────────────────────┐
│ 🎓 课程导航面板 ▼ │
│ │
│ 📘 课程: │ ← 实时课程名
│ 新人培训-职业健康安全240201 │
│ │
│ ⏱ 剩余时间: 6分30秒 │ ← 页面真实倒计时
│ 📋 课程状态: ⏳ 学习中 │ ← 动态检测
│ 📊 总进度: 7% (7/98) │ ← 页面数据
│ ────────────────────────── │
│ 📄 页面: 3 / 50 │
│ 🔘 按钮: button:has-text.. │
│ ────────────────────────── │
│ [ ▶ 开始自动翻页 ] │
│ ⚡ 加速倒计时: --- │ ← 仅运行后出现
│ [ ⚡ 启动加速跳转 ] │
│ 课程学习中... │
│ ────────────────────────── │
│ ⚠ 免责声明 │
└──────────────────────────────┘
📊 面板字段说明
| 字段 | 说明 | 刷新频率 |
|---|---|---|
| 📘课程 | 当前课程名称,已有绿色 ✅ 前缀表示已完成 | 每秒 |
| ⏱剩余时间 | 页面原生倒计时,自动识别小时/分钟/秒 | 每秒 |
| 📋课程状态 | ✅ 已完成 / ⏳ 学习中 / 📄 浏览中/考试中 /未知~~~~ |
每秒 |
| 📊总进度 | 从页面提取的7%(7/98个任务) |
每秒 |
| 📄页面 | 已翻页数 / 最大限制 | 每次翻页 |
| 🔘按钮 | 匹配到的"下一页"按钮选择器 | 每次翻页 |
| ⚡加速倒计时 | 加速模式的独立计时器 | 每秒(仅加速中) |
⚙️ 配置区参考
const CONFIG = {
// 下一页按钮选择器(按优先级逐一尝试匹配)
nextButtonSelectors: [
"button:has-text('下一个')",
"button.yxtf-button.is-icon",
".yxtf-button.is-icon",
],
waitBetweenPages: 3000, // 翻页间隔(毫秒)
scrollToBottom: true, // 是否滚动到底部
scrollStep: 300, // 滚动像素步长
scrollDelay: 300, // 每步滚动延迟
maxPages: 50, // 最多翻页数
autoStart: true, // 打开页面自动开始?
showPanel: true, // 显示控制面板?
// SPA 控制
waitForOldBtnGone: 5000, // 等旧按钮消失的最长时间
waitForNewBtnAppear:15000, // 等新按钮出现的最大时间
pollInterval: 500, // 轮询间隔
// 课程检测
countdownSelector: 'span.yxt-color-warning', // 倒计时元素
autoAdvanceBelowSeconds: 999999,
doneWaitMs: 2000, // 完成后等待再跳转
panelRefreshMs: 1000, // UI 刷新间隔
};
🔄 自动化流程图
flowchart TD
S[打开课程页面] --> P[2秒后自动展开面板]
P --> A[等待"下一个"按钮出现]
A --> B{课程状态检测}
B -->|✅ 已标记完成| SKIP[10秒倒计时提示]
SKIP --> CLICK1[点击下一个]
B -->|⏳ 有倒计时| WAIT[等待真实倒计时]
WAIT --> DONE{倒计时归零?}
DONE -->|是| SCROLL[滚动页面]
DONE -->|卡死15秒+| FORCE[⚠ 强制跳转]
B -->|📄 无倒计时| SCROLL
SCROLL --> CLICK2[点击下一个]
FORCE --> CLICK2
CLICK1 --> A
CLICK2 --> A
🚀 加速跳转(调试/验证功能)非调试不要点击!!!!!!
什么时候用?
正常倒计时可能需要 5-20 分钟,加速模式将等待时间缩短为秒位部分,方便快速验证脚本是否正常工作。非调试不要点击!!!!!!
怎么用?
- 先点 ▶ 开始自动翻页
- 底部出现加速区域,点 ⚡ 启动加速跳转
- 后倒计时归零,自动点击下一个
加速时间计算
| 原剩余时间 | 加速等待 | 说明 |
|---|---|---|
| 6分30秒 | 30 秒 | 原时间390 % 60 = 30 |
| 5分15秒 | 15 秒 | 315 % 60 = 15 |
| 1小时20分03秒 | 3 秒 | 4803 % 60 = 3 |
注意
- 加速归零触发强制跳转,会跳过滚动步骤
- 点 ⏹ 取消加速 即可回到正常等待模式
- 加速和正常流程互不干扰,可随时开关
🛡️ 异常处理
| 情况 | 面板显示 | 行为 |
|---|---|---|
| 未找到按钮 | ⚠ 超时 |
停止本次翻页 |
| 按钮消失 | ⚠ 按钮消失 |
停止本次翻页 |
| 倒计时卡死(15秒+不变) | ⚠ 页面卡死 |
强制跳转 |
| 课程已标记完成 | ⏭ 已完成课程 |
10秒倒计时后跳过 |
| 到达最大翻页数 | 已停止 |
停止自动翻页 |
❓ 常见问题
Q:怎么使用?
A:点击 自动翻页按钮即可,不要随意点击加速!!
Q:面板默认是收起状态,怎么展开?
A:点击 🎓 课程导航面板 标题栏即可展开/折叠。
Q:面板挡到内容了? A:按住标题栏拖拽到任意位置。
Q:课程名显示不对?
A:课程名选择器是 span.yxtf-tooltip.ulcdsdk-ellipsis-2,你可以按 F12 查看实际元素,修改 getCourseInfo 中的 titleSelectors。
Q:按钮匹配不上?
A:F12 → 选择按钮元素 → 复制 selector → 填入 nextButtonSelectors 最前面。
Q:UI 显示不刷新怎么办? A:面板从打开页面起即持续每秒刷新,无需点击任何按钮。如果长时间不动,检查 F12 控制台是否有报错。
⚠ 免责声明:本脚本仅供个人学习测试使用。使用者需遵守相关平台规则,自行承担全部责任。
Statistics
Total Installs
62
Last 24h
+10
User Rating
5.0
Script Details
Applicable Sites
LicenseMIT