YaoHuo_Split_Preview.js 是一个桌面端 Tampermonkey 用户脚本,用于把妖火论坛帖子列表页改造成“左侧帖子列表 + 右侧 iframe 预览”的双栏阅读界面。它适合连续浏览帖子、快速切换上下帖、保留已读状态,并支持将右侧预览内容导出为 PNG。
- 列表页内完成阅读:点击左侧帖子后,右侧直接预览详情页。
- 连续阅读效率更高:支持按钮和快捷键切换上一帖、下一帖。
- 阅读状态本地保存:自动记录已读、分栏比例和上次浏览帖子。
- 长帖保存更方便:自动展开更多评论后导出右侧预览为 PNG。
- 桌面端体验优化:支持拖拽分栏、预览净化、左栏自动加载更多。
- 左侧保留原帖子列表,右侧使用 iframe 加载帖子详情。
- 当前帖子会高亮,已读帖子会使用单独颜色标记。
- 长按中间分隔条可调整左右宽度,双击恢复默认
40% / 60%比例。 - 左侧滚动到底部附近时会自动触发加载更多。
Space打开下一帖。Shift + Space打开上一帖。Ctrl + Shift回到顶部并打开第一个帖子。C和X在右侧回复框中填入预设快捷回复。- 快捷键在输入框、文本域、按钮和可编辑区域中会自动避让。
- 点击
存图片后,脚本会尝试展开右侧帖子中的更多评论。 - 导出前会等待图片和字体资源加载,提升截图完整度。
- 导出过程会限制最大像素和边长,降低浏览器卡死风险。
- 点击预览后自动标记已读,并保存到浏览器
localStorage。 - 重新打开列表页时,脚本会恢复到上次浏览的帖子。
- 分栏比例会持久化保存,下次打开继续使用。
- 清理浏览器站点数据后,已读、比例和上次浏览记录会重置。
脚本仅在以下页面生效:
https://yaohuo.me/bbs/book_list.aspx*https://www.yaohuo.me/bbs/book_list.aspx*
- 安装支持 userscript 的浏览器扩展,例如 Tampermonkey。
- 打开脚本安装地址:
https://raw.githubusercontent.com/WuSanJu/YaoHuo_Split_Preview/master/YaoHuo_Split_Preview.js
- 在扩展安装页确认安装。
- 打开妖火论坛帖子列表页,脚本会在页面空闲时自动启用。
当前工作区脚本文件名统一为:
YaoHuo_Split_Preview.js
@downloadURL 和 @updateURL 已同步指向该文件名。
- 点击左侧帖子:右侧预览对应帖子,并标记为已读。
- 点击
上一帖:打开当前列表中的上一条帖子。 - 点击
下一帖:打开当前列表中的下一条帖子。 - 点击
新标签:在新标签页打开当前帖子。 - 点击
存图片:展开右侧帖子评论并导出 PNG。 - 点击
清痕迹:清除当前页已读痕迹,保留当前帖子状态。 - 长按分隔条:拖动调整左右栏宽度。
- 双击分隔条:恢复默认
40% / 60%分栏比例。
| 快捷键 | 行为 |
|---|---|
Space |
下一帖 |
Shift + Space |
上一帖 |
Ctrl + Shift |
回到顶部并打开第一个帖子 |
C |
填入随机快捷回复:吃肉、吃吃、吃了 |
X |
填入随机快捷回复:谢谢分享、感谢分享、多谢分享 |
快捷键在输入框、文本域、按钮和可编辑区域中会避让,减少误触。
脚本使用浏览器 localStorage 保存本地状态:
| 键名 | 用途 |
|---|---|
yaohuo_split_desktop_left_ratio_v5 |
左右分栏比例 |
yaohuo_split_desktop_read_threads_v5 |
已读帖子 ID 集合 |
yaohuo_split_desktop_last_thread_map_v5 |
各列表上下文的上次浏览帖子 |
这些数据保存在浏览器本地。清理站点数据或浏览器缓存后,脚本状态会重置。
脚本运行时按需从 jsDelivr 加载 html2canvas@1.4.1,用于生成 PNG 图片:
https://cdn.jsdelivr.net/npm/html2canvas@1.4.1/dist/html2canvas.min.js
脚本本身使用 @grant none,没有请求 Tampermonkey 扩展 API 权限。
- 推荐桌面端 Chromium 内核浏览器或 Firefox。
- 推荐使用最新版 Tampermonkey。
- 移动端、窄屏设备和粗指针设备会显示桌面端专用提示。
本仓库是单文件 userscript 项目,没有构建步骤。修改脚本后可直接通过 Tampermonkey 本地安装或复制源码调试。
发布流程:
- 确认脚本文件名为
YaoHuo_Split_Preview.js。 - 更新 userscript 元数据中的
@version。 - 在目标页面进行手动回归测试。
- 更新
CHANGELOG.md。 - 提交并推送到 GitHub。
本项目基于 MIT License 发布,详见 LICENSE。