本项目是一个运行在 Tampermonkey / Violentmonkey 上的妖火论坛增强脚本。
它把原本“帖子列表页 → 点进帖子浏览 → 返回帖子列表”的浏览方式,改造成 左侧原始帖子列表 + 右侧 iframe 实时预览 的双栏阅读模式,并围绕这一模式提供:
- 已读记录
- 上次浏览恢复
- 左栏自动加载更多
- 评论自动展开
- PNG 长图导出
- 快捷键切帖
- 分栏拖拽调整
适合需要连续浏览帖子、减少反复返回列表操作的使用场景。
下图为项目实机图,实际效果以浏览器页面为准。
左边原帖列表,右边 iframe 预览;长按拖拽分栏、已读记录、上一帖/下一帖、新标签、导出为 PNG、清痕迹 |
| 功能 | 说明 |
|---|---|
| 双栏预览 | 左侧保留原始帖子列表,右侧 iframe 实时预览当前帖子 |
| 已读记录 | 自动记录已读帖子,本地持久化保存,左栏显示已读样式 |
| 自动恢复 | 重新打开同一类列表页时,按帖子 ID 恢复上次浏览位置 |
| 自动加载更多 | 左栏滚动接近底部时自动尝试加载更多帖子 |
| 切帖导航 | 支持上一帖 / 下一帖按钮与快捷键快速切换 |
| 新标签打开 | 一键在浏览器新标签页中打开当前帖子 |
| PNG 导出 | 导出前自动展开评论、预载图片与字体,再生成 PNG |
| 清痕迹 | 清除当前页左侧已读痕迹,保留当前正在浏览的帖子 |
| 分栏拖拽 | 长按分隔条拖动调宽度,双击恢复默认 40% / 60% |
| 快捷键支持 | Space / Shift + Space / Ctrl + Shift |
任选其一:
推荐浏览器:
- Google Chrome
- Microsoft Edge
- Brave
- 其他 Chromium 内核浏览器
- Raw 安装地址:
https://raw.githubusercontent.com/WuSanJu/yaohuo-split-preview/main/yaohuo-split-preview.user.js
- 打开脚本管理器
- 新建脚本
- 将本仓库中的
yaohuo-split-preview.user.js全部内容复制进去 - 保存
- 打开妖火论坛列表页即可生效
脚本仅在以下页面启用:
*://yaohuo.me/bbs/book_list.aspx**://www.yaohuo.me/bbs/book_list.aspx*
如果当前页面不是帖子列表页,脚本会自动退出,不影响其他页面。
- 进入妖火论坛帖子列表页后,页面会自动切换为双栏模式
- 左侧保留帖子列表
- 右侧显示当前帖子的实时预览
- 点击左侧帖子标题,或点击整行帖子区域,都可以在右侧打开
- 上一帖:打开左侧上一条帖子
- 下一帖:打开左侧下一条帖子
- 新标签:用浏览器新标签页打开当前帖子
- 存图片:导出当前右侧帖子预览为 PNG
- 清痕迹:清除当前页左侧已读痕迹,但保留当前帖子
- 长按分隔条后拖动:调整左右栏宽度
- 双击分隔条:恢复默认宽度比例
40% / 60%
脚本会按“列表上下文”分别保存你最后浏览的帖子。
下次重新打开该列表时:
- 右侧会优先恢复到上次浏览的帖子
- 左侧会尝试同步高亮定位
- 如果左侧尚未加载到该帖子,脚本会自动尝试触发“加载更多”查找
| 快捷键 | 功能 |
|---|---|
Space |
下一帖 |
Shift + Space |
上一帖 |
Ctrl + Shift |
左侧回到顶部并打开第一个帖子 |
说明:
- 快捷键在右侧
iframe中同样有效 - 输入框、文本框、可编辑区域中不会触发,避免误操作
脚本使用 localStorage 保存以下数据:
| Key | 作用 |
|---|---|
yaohuo_split_left_ratio_v2_7 |
左栏宽度比例 |
yaohuo_split_read_threads_v2_7 |
已读帖子 ID 集合 |
yaohuo_split_last_thread_map_v3 |
各列表上下文对应的最后浏览帖子 |
补充说明:
- 所有记录仅保存在你的浏览器本地
- 不会上传到远端服务器
- “清痕迹”只清除本地脚本记录,不影响论坛服务端数据
- 页面结构若有较大改版,可能导致:
- 帖子链接识别失败
- 左栏“加载更多”识别失败
- 评论自动展开失效
- 若帖子中包含防盗链图片、跨域图片,导出 PNG 可能失败
- 超长帖、超多图片的帖子,导出时间会更长
- 该脚本主要面向桌面端浏览器,移动端体验不作为当前优化重点
1. 为什么导出 PNG 失败?
常见原因有:
- 右侧帖子还没有完全加载完成
- 帖子中含有跨域图片或防盗链图片,浏览器不允许写入 canvas
- 当前帖子过长、资源过多,浏览器内存不足
html2canvasCDN 临时访问失败
建议依次尝试:
- 等待右侧预览完全加载后再导出
- 换一个帖子测试
- 刷新页面后重试
- 检查网络是否能访问
jsdelivr/unpkg
2. 为什么重新打开列表页后,没有恢复到左侧高亮位置?
有两种可能:
- 当前列表中还没加载到那条帖子,脚本会尝试自动加载更多去找
- 论坛页面结构或“加载更多”入口发生变化,导致自动定位失败
即使左侧未能成功定位,右侧一般仍会优先恢复到上次浏览的帖子页面。
3. 为什么左栏没有自动继续加载更多?
脚本只会在接近左栏底部时尝试自动加载,并且有冷却时间与状态判断。
如果论坛本身没有更多内容、按钮不可见、或页面正处于忙碌状态,脚本就不会继续点击。
4. 为什么快捷键没有反应?
请检查:
- 当前焦点是否在输入框、文本框、按钮或可编辑区域中
- 是否有浏览器扩展或站点脚本占用了同一快捷键
- 当前页面是否确实是匹配的帖子列表页
5. 已读记录和浏览记录存在哪里?如何清掉?
它们保存在浏览器本地 localStorage 里。
你可以:
- 直接使用脚本提供的“清痕迹”按钮清除当前页已读记录
- 或在浏览器开发者工具 / 网站数据设置中手动清理站点本地存储
6. 为什么采用 iframe 预览,而不是直接把帖子内容抓到当前页面?
因为妖火帖子本身就是同源页面,使用 iframe 可以:
- 更稳定地复用原帖页面结构
- 减少自己重新解析帖子 DOM 的复杂度
- 更方便做导出前的评论展开与内容清理
- 增加更细的调试日志开关
- 进一步提升对页面结构变化的兼容性
- 继续优化超长帖 PNG 导出体验
- 视情况补充更多快捷键与列表操作能力
感谢以下项目与生态:
- html2canvas 提供页面转 canvas / PNG 的核心能力
- Tampermonkey
- Violentmonkey
- 妖火论坛的实际使用场景与页面结构,为本脚本提供了真实的优化目标
- 所有提出问题、体验建议、兼容性反馈的使用者
本项目为个人增强脚本,与妖火论坛官方无从属关系,也不代表任何官方立场。
- GitHub 仓库:
https://github.com/WuSanJu/yaohuo-split-preview - Issue 反馈:
https://github.com/WuSanJu/yaohuo-split-preview/issues - 联系邮箱: 204201990@qq.com
如果这个项目对你有帮助,欢迎点一个 Star。
本项目基于 MIT License 开源,详见 LICENSE。
