课程自动导航助手

Created 16 days ago
Updated 2 days ago
自动翻页、倒计时等待、课程状态检测,适用于自有学习平台管理
#学习辅助
#课程导航
#自动翻页
#云学堂
Statistics
Total Installs
62
Last 24h
+10
User Rating
5.0
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:

  1. 点击浏览器右上角 🐒 图标 → 管理面板
  2. 点击 + 新建脚本
  3. auto_navigate.user.js 全部内容粘贴进去
  4. Ctrl + S 保存

脚本猫:

  1. 点击浏览器右上角 🐱 图标 → 管理面板
  2. 点击 + 新建 或直接拖拽 auto_navigate.user.js 到管理页面
  3. auto_navigate.user.js 全部内容粘贴进去
  4. 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 分钟,加速模式将等待时间缩短为秒位部分,方便快速验证脚本是否正常工作。非调试不要点击!!!!!!

怎么用?

  1. 先点 ▶ 开始自动翻页
  2. 底部出现加速区域,点 ⚡ 启动加速跳转
  3. 后倒计时归零,自动点击下一个

加速时间计算

原剩余时间 加速等待 说明
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 控制台是否有报错。


免责声明:本脚本仅供个人学习测试使用。使用者需遵守相关平台规则,自行承担全部责任。

Script Details
Applicable Sites
LicenseMIT