Greasy Fork

Greasy Fork is available in English.

超星学习通高效刷题小助手

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

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

  • 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
  • v2.3.0 2025-11-14 Imported from URL
  • v2.3.0 2025-11-13 Imported from URL
  • v2.0.0 2025-11-09 Imported from URL
  • v1.0.1 2025-11-08
  • v1.0.1 2025-11-08
  • v1.0.1 2025-11-08
  • v1.0.1 2025-11-08