Skip to content

feat: 重构 DOM 工具链与基础服务,新增快捷键系统并优化部分功能模块#138

Open
PaTTeeL wants to merge 57 commits into
qianjiachun:masterfrom
PaTTeeL:master
Open

feat: 重构 DOM 工具链与基础服务,新增快捷键系统并优化部分功能模块#138
PaTTeeL wants to merge 57 commits into
qianjiachun:masterfrom
PaTTeeL:master

Conversation

@PaTTeeL

@PaTTeeL PaTTeeL commented Mar 27, 2026

Copy link
Copy Markdown
Contributor

feat: 重构 DOM 工具链与基础服务,新增快捷键系统并优化部分功能模块


🏗️ 基础服务层

全局 DOM 观察服务 gDomObserver

  • 新增全局单例 gDomObserver,统一管理页面内的 DOM 变更监听
  • waitForElement:新增自动去重、超时、rAF 防抖;相同选择器下的多个等待任务改用任务组管理,各任务支持独立超时
  • raceForElement:支持多选择器竞争式等待,返回首个命中元素

DomHook 增强

  • 新增 observeAttributes 参数(默认 false),按需开启属性变更监听
  • 扩展参数类型,支持直接传入 DOM 元素对象
  • 新增自动去重机制与回调管理优化
  • 新增参数合法性检查与自动清理机制

新增 _rawQuery 方法

  • 对简单选择器优先使用 getElementById / getElementsByClassName / getElementsByTagName 等原生 API,未命中的复杂选择器降级到 querySelector,提升高频 DOM 查询性能

全局快捷键服务 gHotkey

  • 新增全局快捷键单例 gHotkey,统一管理全页面的键盘事件绑定
  • 支持批量注册快捷键
  • 提供 remove / enable / disable / list 方法,完整生命周期管理

📋 业务模块

FollowList(关注列表)

  • 改用原生 FollowList 实现,优化菜单最大高度
  • 使用 ResizeObserver 替代轮询,修复竞态时序问题
  • 使用 waitForElement 替代原有轮询逻辑
  • 调整视频动态的请求上限,获取更多记录

HistoryList(历史列表)

  • 新增 HistoryList 模块,调整列表请求数上限
  • 限制最大高度并启用溢出滚动

Refresh 模块

  • 合并 Refresh_BarrageFrameRefresh_Barrage,消除冗余
  • 拆分 Refresh_Barrage.css,精简合并冗余代码
  • 使用 waitForElement 优化 DOM 操作时机
  • 使用 CSS 类状态管理重构 Refresh_Video(适配新 UI)
  • 使用 CSS 类状态管理重构 Refresh_Barrage
  • 优化本地存储读写方法
  • 在播放控制栏的屏蔽按钮中添加「视频简洁模式」选项

ExpandTool / FullScreen

  • 移除冗余变量,统一缩进
  • 使用 waitForElement 替代轮询;使用 raceForElement 进一步优化自动网页全屏机制
  • 使用 DomHook 监听替代自动网页全屏中的轮询
  • 调整监听目标,新增对直播流异常的检测
  • 新增自动网页全屏后自动折叠弹幕侧边栏的功能
  • 新增 ExpandTool 统一本地存储读写方法,重构 ExpandTool_FullScreen 存储逻辑
  • 调整部分 DOM 创建代码结构
  • 修复精简模式下视频全屏时播放器控制栏高度异常

BarragePanel / 弹幕面板

  • 调整 BarragePanel_Tip 中「+1」的位置,方便点击
  • 新增 BarragePanel_Tip 边界检测防溢出机制
  • 修复新版 UI 下 BarragePanel_Tip 背景错位问题

弹幕屏蔽

  • 精简各模块中冗余的 shieldTool 查询
  • 增加功能项存在性检查,防止重复插入
  • 限制弹幕屏蔽面板最大高度并启用溢出滚动
  • 使用 waitForElement 优化 shieldTool 查询时机

快捷键绑定

  • 为右侧弹幕区「前缀」「拉高」按钮分别绑定快捷键 xg
  • 为「视频区简洁模式」绑定快捷键 s
  • 新增快捷键 t,用于全屏模式下切换弹幕侧边栏收起/展开

Camera

  • 调整 anchorName 的获取时机,改用 textContent 提升稳定性
  • 调整 #ex-camera 底部偏移量,防止误触侧栏按钮

Router / 页面支持

  • 添加对分类、关注、历史等页面的支持
  • 使用 waitForElement 替代 Router 中元素的轮询

弹幕侧边栏

  • 优化功能按钮文案和样式
  • 优化 initPkg_CopyRealLive 中 DOM 查询方法

🔧 代码质量

  • 添加 JS 模块间空行,增强代码可读性
  • 优化性能与防御性判断,修复编辑器中部分感叹号警告

PaTTeeL and others added 30 commits March 27, 2026 20:33
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant