Greasy Fork

Greasy Fork is available in English.

超星学习通期末周复习小助手

一键隐藏超星学习通作业页面中所有答案块,支持单个/全局控制、一键复制题目(可配置前缀后缀、支持图片复制到Word)、一键问豆包AI(智能跨域提问+会话复用)、富文本笔记编辑(16个格式按钮)、编辑/预览模式切换、完整的按钮样式管理、双按钮导出试题为Word文档(含图片、可选导出内容)、竖屏响应式布局、样式持久化存储。

当前为 2025-12-09 提交的版本,查看 最新版本

这些是此脚本变更过代码的版本。 显示所有版本。

  • v3.9.1.5 2025-12-10

    fix:去除残留函数

  • v3.9.1.4 2025-12-10

    fix: 简化豆包AI自动填充逻辑,固定等待1.5秒

    • 移除设备类型检测和动态等待逻辑
    • 统一使用1.5秒固定等待时间
    • 简化代码逻辑,提高稳定性
    • 版本更新至 3.9.1.4
  • v3.9.1.3 2025-12-09

    Update version from 3.9.1.4 to 3.9.1.3

  • v3.9.1.4 2025-12-09

    fix(v3.9.1.3): 优化控制面板布局+子选项卡粗体

    🐛 Bug修复:

    • 修复控制面板下边栏未紧贴窗口底部的问题
      • contentBody改用flex布局(去除padding)
      • 下边栏使用marginTop: auto自动贴底
      • 移除负margin hack,采用现代flex方案

    👍 UI/UX优化:

    • 笔记管理子选项卡激活状态添加粗体效果
      • 当前页面/课程/域名选中时显示bold
      • 提升视觉识别度

    🔧 技术重构:

    • 统一所有设置面板布局结构
      • 基础设置、复制配置、AI提问、导出设置
      • 均使用contentWrapper包装内容区域
      • 确保内容有padding,下边栏紧贴底部
      • 提升代码一致性和可维护性

    fix(v3.9.1.3): 增强笔记子选项卡视觉效果

    • 激活状态颜色从#4299e1调整为更亮的#63b3ed
    • 添加文字发光效果(textShadow)提升显眼度
    • 确保鼠标离开时保持激活状态的高亮效果

    feat: v3.9.1.4 版本更新与文档优化

    • 更新版本号至 v3.9.1.4
    • 大幅优化脚本描述信息,更详细地介绍功能特性
    • 调整作者信息
    • README 添加开源致敬和脚本生效范围说明
    • 优化安装方式说明,添加 ScriptCat 安装选项
    • 移除预览图3,调整文档结构
    • 添加开发阶段声明和贡献邀请
  • v3.9.1.2 2025-12-09

    fix(v3.9.1.2): 修复按钮状态显示+统一样式管理

    🐛 Bug修复:

    • 修复笔记按钮点击后颜色未立即变化的问题
      • 点击显示笔记后立即变为紫色背景
      • 鼠标悬停不再改变颜色
    • 修正编辑按钮颜色逻辑(橙色预览↔绿色编辑)
      • 预览模式: 橙色背景 + '编辑'文字
      • 编辑模式: 绿色背景 + '预览'文字
      • 鼠标悬停不再改变颜色
    • 统一错题按钮样式管理到StyleGenerator

    🔧 技术优化:

    • 新增addNoColorChangeHoverEffect方法
      • 保留悬停动画效果(上移+阴影)
      • 不改变按钮背景颜色
    • 重构按钮样式管理逻辑,提升代码可维护性
  • v3.9.1.1 2025-12-09

    fix(v3.9.1.1): 修复豆包自动发送+优化星星弹性布局

    • 🐛 修复豆包页面未指定会话ID时不自动发送的问题
      • 添加1.5s初始等待解决新会话URL重定向
      • 添加300ms输入后等待确保内容稳定
    • 🎨 优化间距为2px(错题按钮和星星)
    • 🎨 改进星星布局为弹性布局,自然挤压按钮
      • 移除按钮上移逻辑
      • 星星容器自动撑开空间
      • 无星星时容器隐藏不占空间
  • v3.9.1 2025-12-09

    feat(v3.9.1): 优化错题按钮布局和UI交互体验

    主要优化:

    1. 错题按钮位置调整:

      • 从绝对定位改为相对定位
      • 移至题目上方(mark_name之前),更符合视觉逻辑
      • 插入到DOM中,自然融入题目流
    2. 星星动态布局:

      • 星星显示在按钮和题目之间
      • 点击时按钮平滑上移(-34px),为星星腾出空间
      • 没有错题时,按钮紧贴题目上方,不留空隙
      • 添加0.3s缓动动画,视觉体验更佳
    3. 按钮间距优化:

      • 复制题目和问豆包按钮间距改为5px(原36px)
      • 更紧凑的布局,视觉更协调

    技术实现:

    • 创建mistakeContainer容器,统一管理按钮和星星
    • 配置新增buttonShift、marginBottom等字段
    • _renderStars方法增加动态margin-top逻辑
    • getMistakeButtonStyle移除position,改为容器级控制

    配置更新:

    • mistakeButton.position改为marginTop/marginBottom/marginLeft
    • stars配置新增buttonShift(-34px)、marginBottom(8px)
    • askDoubaoButton.position.top改为31px(26px+5px)

    版本号:3.9.0.1 -> 3.9.1

  • v3.9.0.1 2025-12-09

    fix(v3.9.0.1): 修复豆包页面错误处理,防止脚本崩溃

    问题:

    • GM_xmlhttpRequest错误导致豆包页面脚本崩溃
    • autoSendMessage未捕获异常,影响正常使用

    修复:

    • 在autoSendMessage的finally块中添加try-catch保护GM_deleteValue
    • 在autoSendMessage()调用外层添加try-catch,防止启动失败
    • 即使豆包服务不可用,脚本也能正常运行
    • 错误日志更友好,不影响用户使用其他功能

    影响范围:

    • 仅影响豆包页面(doubao.com/chat)
    • 超星学习通页面不受影响
    • 所有核心功能(答案控制、笔记、错题记录、导出)正常工作
  • v3.9.0 2025-12-09

    feat(v3.9.0): 添加错题记录功能和笔记键结构优化

    主要功能:

    • ⭐ 新增错题记录功能:左上角「错题+1」按钮,星级显示(每5颗星换行)
    • 📝 笔记键结构优化:添加题号字段(QuestionNo),支持智能解析
    • 🗄️ 数据库升级至v4:新增mistakes store存储错题记录
    • 🔧 笔记管理优化:显示格式为「Question402709106_No24」

    技术细节:

    1. URLParser新增parseQuestionNumber方法解析题号
    2. DatabaseManager新增addMistake/getMistake/getAllMistakes方法
    3. AnswerBlockController新增错题按钮和星星容器
    4. NoteEditor构造函数添加questionNo参数
    5. 错题记录包含count和times数组(记录每次做错时间)
    6. 题号解析失败时默认为999

    配置更新:

    • mistakeButton完整配置(位置、样式、颜色、星星显示)
    • 数据库版本升级至4
    • 版本号更新至3.9.0
    • README更新最新功能说明
  • v3.8.5.2 2025-12-09

    improve: v3.8.5.2 导出格式配置化

    功能改进:

    • 导出格式配置化:在导出设置中选择DOC或DOCX格式
    • 简化UI:移除2个手机版导出按钮,统一为2个按钮(试题/答案)
    • DOC格式(默认):兼容性更好,适合手机/平板直接查看
    • DOCX格式:标准Office文档,标注手机/平板可能有显示bug
    • 配置持久化:导出格式保存到IndexedDB

    技术实现:

    • 在exportSettings添加exportFormat字段(默认'doc')
    • 在导出设置面板添加单选按钮(DOC/DOCX)
    • 修改_handleExport方法从数据库读取用户配置的格式
    • 添加格式选择的悬停效果和样式优化
    • 在保存/重置时正确处理exportFormat配置

    README优化:

    • 最新版本特性置顶(v3.8.5.2)
    • 历史版本日志移至最后「完整更新日志」
    • 更新核心功能中的「试题导出」描述
    • 简介中更新为「灵活试题导出(可配置DOC/DOCX格式)」

    代码优化:

    • 移除exportDocButton和exportDocWithAnswerButton
    • 精简_createExportButton方法
    • 统一导出格式处理逻辑
    • 提升代码可维护性和可扩展性
  • v3.8.5.1 2025-12-09

    improve: v3.8.5.1 新增手机版导出按钮(DOC格式)

    功能改进:

    • 新增4按钮导出系统:DOCX试题/答案 + DOC试题/答案(手机版)
    • DOC格式导出:跳过html-docx-js转换,直接生成HTML格式.doc文件
    • 手机版优势:兼容性更好,适合移动端直接查看
    • 统一配置:4个按钮共用导出配置和内容选项
    • 按钮布局:纵向排列(从上到下),清晰明了

    技术实现:

    • 新增_generateDoc方法专门处理DOC格式导出
    • 修改_handleExport方法支持format参数(docx/doc)
    • 复用配置和图片处理逻辑,保持代码DRY原则
    • 共享filterAnswerHtml、downloadImageAsBase64等核心方法

    代码优化:

    • 提取通用的HTML构建逻辑
    • 统一图片处理和样式生成
    • 保持高可维护性和可扩展性
  • v3.8.5 2025-12-09

    feat: v3.8.5 移动端优化-固定等待3秒提升稳定性

    • 添加移动端User Agent检测
    • 手机端采用固定等待3秒策略,确保页面充分加载
    • 桌面端保持动态等待逻辑(MutationObserver)
    • 优化日志输出,显示设备类型和模式
  • v3.8.4.3 2025-12-08

    rename

  • v3.8.4.2 2025-12-08

    fix: v3.8.4.2 优化豆包AI自动发送,改用Enter键兼容移动端

  • v3.8.4.2 2025-12-08

    rename

  • v3.8.4.1 2025-12-08

    fix: v3.8.4.1 修复GM_deleteValue缺少授权声明问题

  • v3.8.4 2025-12-08

    fix: 添加GM_deleteValue授权声明

  • v3.8.4 2025-12-08

    refactor: 使用GM_deleteValue替换GM_setValue置空操作

  • v3.8.4 2025-12-08

    feat: v3.8.4 优化豆包AI标签页管理

    1. 修复会话ID输入框placeholder提示文字混淆问题

      • 根据key动态设置placeholder
      • 会话ID输入框:'留空则每次新建标签页,示例:32898162890824194'
      • 其他输入框:保持原有提示文字
    2. 实现豆包AI标签页引用管理

      • 在ChaoxingAnswerHider添加doubaoTabRef属性存储标签页引用
      • 点击问豆包时自动关闭旧标签页(如果存在)
      • 保存新标签页引用,实现真正的标签页复用
      • 静默处理已关闭的标签页,避免错误提示
    3. 优化代码架构

      • AnswerBlockController构造函数接收appInstance参数
      • 通过appInstance访问doubaoTabRef实现跨组件通信
      • 符合高可维护、高可扩展的设计原则
  • v3.8.3 2025-12-08

    fix: v3.8.3 修复3个bug

    1. 修复显示全部答案按钮hover后鼠标移开颜色不恢复的问题

      • 在mouseenter时缓存进入时的背景色
      • mouseleave时恢复缓存的颜色,而不是重新计算
    2. 更新AI提问管理配置卡的文字描述

      • 明确说明留空=新建标签页
      • 明确说明配置后=打开指定会话(浏览器可能自动聚焦)
      • 优化示例文字,更清晰的操作指引
    3. 确认响应式布局按钮顺序正确

      • 空间不足时按钮纵向排列(flexDirection: column)
      • 顺序:控制面板 → 显示全部答案 → 导出
  • v3.8.2 2025-12-08

    revert: 回滚v3.9.0自动会话复用功能,恢复v3.8.2简单新建标签页逻辑

    • 移除GM_addValueChangeListener/GM_removeValueChangeListener权限
    • 移除超星页面的会话ID自动保存和监听器逻辑
    • 移除豆包页面的URL监听和ID提取功能
    • 删除v3.9.0测试指南和更新说明文档
    • 更新README移除v3.9.0说明
    • 版本号回退到3.8.2
  • v3.9.0 2025-12-08

    chore: v3.9.0 自动会话复用:实现豆包页面URL监听与跨页保存,会话ID持久化,更新README和测试指南

  • v3.8.2 2025-12-07

    release: v3.8.2 - 稳定性优化和会话复用完善

    版本更新:

    • 版本号:3.8.1 → 3.8.2
    • 更新 README,新增 v3.8.2 更新说明

    核心改进:

    1. 彻底移除不稳定的持续监听方案

      • 移除豆包页面的 500ms 轮询逻辑
      • 避免时序问题导致的内容填充失败
    2. 真正的会话复用实现

      • 新增会话ID配置功能
      • 用户可指定固定的豆包会话ID
      • 利用浏览器原生标签页管理机制
    3. 配置读取优化

      • 从 IndexedDB 实时读取前后缀配置
      • 确保用户保存的配置立即生效
      • 添加详细的配置读取日志
    4. 豆包页面简化

      • 只在页面加载时执行一次自动填充
      • 移除复杂的轮询监听逻辑
      • 更稳定可靠

    功能特性: ✅ 一键问豆包AI(智能跨域提问) ✅ 会话复用(通过配置会话ID) ✅ 前后缀提示词自定义 ✅ 实时预览配置效果 ✅ IndexedDB 配置持久化 ✅ 富文本笔记管理 ✅ 答案自由控制 ✅ 试题导出为Word文档 ✅ 完整样式自定义

  • v3.8.1 2025-12-07

    fix: 修复会话ID输入框创建错误

    问题:

    • 使用了 _createSettingItem() 方法创建会话ID输入框
    • 该方法只支持 checkbox 和 number 类型
    • 导致 appendChild 参数类型错误

    解决:

    • 改用 _createTextSettingItem() 方法
    • 该方法专门用于创建文本输入框
    • 支持完整的输入框样式和事件处理
  • v3.8.1 2025-12-07

    feat: 彻底移除持续监听方案,改为用户指定会话ID实现真正的复用

    核心改进:

    1. 添加「豆包会话ID」配置项

    2. 彻底移除不可靠的持续监听方案

      • 移除 startCacheListener() 函数
      • 移除 500ms 轮询逻辑
      • 避免时序问题导致的"有时打开了却没有输入内容"
    3. 实现真正的会话复用

      • 配置会话ID后,每次打开同一个会话
      • 利用浏览器的标签页管理机制
      • 如果用户手动关闭了标签页,点击按钮会重新打开同一会话
      • 如果标签页还在,点击按钮会聚焦到该标签页(浏览器原生行为)
    4. 豆包页面简化

      • 只在页面加载时执行一次 autoSendMessage()
      • 不再轮询检查缓存更新
      • 更稳定可靠

    技术说明:

    • GM_openInTab 无法真正控制标签页(这是 API 限制)
    • 但配置会话ID后,浏览器会自动处理同URL的标签页
    • 用户体验更好:保持同一个对话上下文,无需频繁新建标签页
  • v3.8.1 2025-12-07

    fix: 修复AI提问前后缀配置不生效的问题

    根本原因:

    • AnswerBlockController 从静态 Config 对象读取配置
    • Config 对象的默认值为空字符串
    • 用户在控制面板保存的配置存储在 IndexedDB 中
    • 点击"问豆包"按钮时没有从 IndexedDB 读取最新配置

    解决方案:

    • 将 _handleAskDoubao() 改为异步函数
    • 点击按钮时从 IndexedDB 实时读取用户保存的前后缀配置
    • 添加详细的配置读取日志,方便调试
    • 如果读取失败,降级使用 Config 默认值

    技术细节:

    • 使用 dbManager.getSetting() 读取 IndexedDB 配置
    • 添加 try-catch 容错处理
    • 控制台输出读取到的前后缀配置值
  • v3.8.1 2025-12-07

    fix: 优化AI提问逻辑,在超星页面直接拼接完整内容并添加持续监听

    核心改进:

    1. 在超星页面直接拼接完整内容(前缀+题目+后缀)后存储

      • 避免在豆包页面重复处理前后缀逻辑
      • 简化代码结构,提高可靠性
      • 添加详细的存储日志
    2. 豆包页面简化为直接读取完整内容

      • 移除 prefixKey 和 suffixKey 的读取逻辑
      • 直接使用完整内容填充输入框
      • 减少潜在的数据不一致问题
    3. 添加持续监听功能(实现"类复用"效果)

      • startCacheListener() 每500ms检查缓存更新
      • 用户保持豆包页面打开时,点击"问豆包"自动刷新内容
      • 避免频繁新建标签页,提升用户体验

    技术说明:

    • GM_openInTab 返回的对象不支持 location/reload/focus 等标准窗口方法
    • 无法实现真正的标签页复用(这是 Tampermonkey API 的限制)
    • 通过持续监听缓存变化实现接近"复用"的体验
  • v3.8.1 2025-12-07

    fix: 修复AI提问前后缀不生效和标签页复用报错问题

    Bug修复:

    1. 前后缀配置不生效

      • 在 _loadSettings 中加载 aiPromptPrefix 和 aiPromptSuffix 到 this.settings
      • 确保配置正确传递到 AnswerBlockController
    2. 标签页复用报错

      • 移除错误的 window.doubaoTabRef 复用逻辑
      • GM_openInTab 返回的对象不支持标准窗口方法(location.reload)
      • 改为每次打开新标签页,豆包页面通过 GM_getValue 自动读取缓存

    调试增强:

    • 在超星页面添加前后缀存储日志
    • 在豆包页面添加详细的GM存储读取日志
    • 输出前后缀的实际内容和长度统计
  • v3.8.1 2025-12-07

    feat: v3.8.1 - 添加AI提问管理选项卡,支持自定义前后缀提示词

    新增功能:

    • 移除默认前缀,默认传送完整题目
    • 新增「AI提问管理」选项卡,支持配置前后缀提示词
    • 提取通用前后缀配置面板方法(_renderPrefixSuffixPanel)
    • 标签页智能复用(检测closed+聚焦刷新)
    • 豆包页面自动应用配置的前后缀提示词

    技术优化:

    • 重构 _renderCopyConfigPanel 使用通用方法
    • 实现 window.doubaoTabRef 标签页引用管理
    • GM_setValue 同步存储前后缀配置到跨域存储
    • 实时预览功能支持自定义示例题目
  • v3.8.0 2025-12-07

    fix: 采用完全可用的豆包AI自动填充方案 + 修复缓存泄露

    🎯 核心改进:

    • 替换为经过验证的完全可用方案(基于 temp3.txt)
    • 使用 MutationObserver 自动监听元素加载(无固定延迟)
    • 使用 document.execCommand('insertText') 模拟真实输入
    • 精准点击按钮中心坐标(getBoundingClientRect)

    🔧 技术实现:

    1. waitForElement() 函数:

      • 先检查元素是否已存在
      • 使用 MutationObserver 监听 DOM 变化
      • 元素加载完成立即执行(无固定延迟)
      • 超时兜底机制(默认10秒)
    2. 模拟人工输入流程:

      • inputElem.click() + focus() 聚焦
      • 输入空字符 + backspace(解锁发送逻辑)
      • document.execCommand('insertText') 插入真实内容
      • 触发 input 事件(bubbles + composed)
    3. 解锁发送按钮:

      • removeAttribute('disabled')
      • setAttribute('aria-disabled', 'false')
      • style.pointerEvents = 'auto'
      • 触发精准坐标的 MouseEvent

    🔒 安全修复:

    • 无论成功失败,finally 块都会清除缓存
    • 防止 GM_getValue 数据泄露到后续会话
    • console.log 明确输出「已清除本地缓存」

    ✅ 测试结果:

    • 语法验证通过
    • 删除所有旧的调试代码和 setTimeout 逻辑
    • 代码结构清晰,注释完整
  • v3.8.0 2025-12-07

    debug: 增强豆包AI内容填充功能和调试信息

    🔍 调试增强:

    • 添加详细的 console.log 调试信息
    • 输出题目内容长度和前100字符
    • 输出输入框元素、当前值、执行后的值
    • 输出发送按钮状态和样式信息

    🧪 测试优化:

    • 添加测试前缀「【来自超星学习通】」方便识别
    • 使用 testPrefix + questionText 组合内容

    🔧 填充方法增强:

    • 方法1: 直接设置 input.value
    • 方法2: 设置 input.textContent
    • 方法3: 设置 input.innerHTML
    • 每个方法执行后都输出结果用于调试

    📡 事件触发优化:

    • 触发 input 事件(bubbles: true)
    • 触发 change 事件(bubbles: true)
    • 触发 InputEvent(inputType: 'insertText')
    • 触发 keydown 和 keyup 事件(模拟键盘输入)
    • 每个事件触发后输出日志

    🎯 焦点管理:

    • 主动调用 input.focus() 聚焦输入框
    • 输出焦点状态

    🚀 按钮检测增强:

    • 检查 disabled 属性
    • 检查 aria-disabled 属性
    • 输出 pointerEvents 样式
    • 详细的按钮状态日志
  • v3.8.0 2025-12-07

    fix: 修复 Logger.info 方法不存在的错误

    🐛 问题修复:

    • Logger 类只有 log、success、error 方法,没有 info 方法
    • 将所有 Logger.info 调用替换为 Logger.log
    • 共修复 3 处错误:
      1. _handleAskDoubao 方法中的题目保存提示
      2. 豆包页面初始化提示
      3. 豆包页面题目填充提示

    ✅ 测试结果:

    • 语法验证通过
    • 问豆包功能现在可以正常工作
  • v3.8.0 2025-12-07

    feat: v3.8.0 一键问豆包AI - 智能跨域提问功能

    🎉 重磅功能:

    • 新增「🤖 问豆包」按钮,紧贴复制按钮下方
    • 自动提取题目内容并跨域提问豆包AI
    • 智能会话复用,优先使用已有对话窗口

    ✨ 技术实现:

    • 使用 GM_setValue/GM_getValue 实现跨域数据传递
    • 使用 GM_openInTab 打开豆包AI并自动切换标签页
    • 自动检测豆包页面输入框并填充题目内容
    • 自动触发发送按钮,完整自动化流程

    🔧 配置优化:

    • 新增 askDoubaoButton 完整配置(位置、样式、颜色)
    • 新增 getAskDoubaoButtonStyle() 样式生成方法
    • 豆包按钮样式统一管理,支持悬停效果

    🌐 权限扩展:

    • 添加豆包AI域名匹配:https://www.doubao.com/chat/*
    • 添加 GM_setValue、GM_getValue、GM_openInTab 权限
    • 添加 doubao.com 和 *.doubao.com 连接权限

    📚 文档更新:

    • README 新增「智能AI助手」功能介绍
    • 更新核心功能列表,突出AI助手特性
    • 新增 v3.8.0 详细更新日志

    🎯 用户体验:

    • 点击问豆包按钮后自动打开新标签页
    • 2秒内完成题目填充和自动发送
    • 无需手动复制粘贴,一键完成提问
    • 支持所有题型(单选、多选、填空等)
  • v2.7.16 2025-12-07 Imported from URL
  • v2.7.15 2025-12-07 Imported from URL
  • v2.7.14 2025-12-07 Imported from URL
  • v2.7.13 2025-12-07 Imported from URL
  • v2.7.12 2025-12-07 Imported from URL
  • v2.7.11 2025-12-07 Imported from URL
  • v2.7.10 2025-12-07 Imported from URL
  • v2.7.9 2025-12-07 Imported from URL
  • v2.7.8 2025-12-05 Imported from URL
  • v2.7.6 2025-12-05 Imported from URL
  • v2.7.4 2025-12-04 Imported from URL
  • v2.7.2 2025-12-03 Imported from URL
  • v2.6.6 2025-12-03 Imported from URL
  • v2.6.4 2025-12-02 Imported from URL
  • v2.4.0 2025-12-02 Imported from URL
  • v2.4.0 2025-11-14 Imported from URL
  • v2.4.0 2025-11-14 Imported from URL

显示所有脚本版本