Skip to content

WuSanJu/yaohuo-split-preview

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 
 
 
 
 

Repository files navigation

妖火论坛-帖子列表页双栏预览

把妖火论坛的原始帖子列表页升级成一个可连续浏览、可恢复进度、可一键导图的双栏阅读器。

本项目是一个运行在 Tampermonkey / Violentmonkey 上的妖火论坛增强脚本。
它把原本“帖子列表页 → 点进帖子浏览 → 返回帖子列表”的浏览方式,改造成 左侧原始帖子列表 + 右侧 iframe 实时预览 的双栏阅读模式,并围绕这一模式提供:

  • 已读记录
  • 上次浏览恢复
  • 左栏自动加载更多
  • 评论自动展开
  • PNG 长图导出
  • 快捷键切帖
  • 分栏拖拽调整

适合需要连续浏览帖子、减少反复返回列表操作的使用场景。


🖼️ 效果预览

下图为项目实机图,实际效果以浏览器页面为准。

实机截图
左边原帖列表,右边 iframe 预览;长按拖拽分栏、已读记录、上一帖/下一帖、新标签、导出为 PNG、清痕迹

✨ 功能亮点

功能 说明
双栏预览 左侧保留原始帖子列表,右侧 iframe 实时预览当前帖子
已读记录 自动记录已读帖子,本地持久化保存,左栏显示已读样式
自动恢复 重新打开同一类列表页时,按帖子 ID 恢复上次浏览位置
自动加载更多 左栏滚动接近底部时自动尝试加载更多帖子
切帖导航 支持上一帖 / 下一帖按钮与快捷键快速切换
新标签打开 一键在浏览器新标签页中打开当前帖子
PNG 导出 导出前自动展开评论、预载图片与字体,再生成 PNG
清痕迹 清除当前页左侧已读痕迹,保留当前正在浏览的帖子
分栏拖拽 长按分隔条拖动调宽度,双击恢复默认 40% / 60%
快捷键支持 Space / Shift + Space / Ctrl + Shift

🚀 安装方式

1. 安装用户脚本管理器

任选其一:

推荐浏览器:

  • Google Chrome
  • Microsoft Edge
  • Brave
  • 其他 Chromium 内核浏览器

2. 安装脚本

方式一:点击安装链接

方式二:手动安装

  1. 打开脚本管理器
  2. 新建脚本
  3. 将本仓库中的 yaohuo-split-preview.user.js 全部内容复制进去
  4. 保存
  5. 打开妖火论坛列表页即可生效

🌐 适用页面

脚本仅在以下页面启用:

  • *://yaohuo.me/bbs/book_list.aspx*
  • *://www.yaohuo.me/bbs/book_list.aspx*

如果当前页面不是帖子列表页,脚本会自动退出,不影响其他页面。


🧭 使用说明

基本使用

  • 进入妖火论坛帖子列表页后,页面会自动切换为双栏模式
  • 左侧保留帖子列表
  • 右侧显示当前帖子的实时预览
  • 点击左侧帖子标题,或点击整行帖子区域,都可以在右侧打开

顶部工具栏

  • 上一帖:打开左侧上一条帖子
  • 下一帖:打开左侧下一条帖子
  • 新标签:用浏览器新标签页打开当前帖子
  • 存图片:导出当前右侧帖子预览为 PNG
  • 清痕迹:清除当前页左侧已读痕迹,但保留当前帖子

分栏操作

  • 长按分隔条后拖动:调整左右栏宽度
  • 双击分隔条:恢复默认宽度比例 40% / 60%

自动恢复

脚本会按“列表上下文”分别保存你最后浏览的帖子。
下次重新打开该列表时:

  1. 右侧会优先恢复到上次浏览的帖子
  2. 左侧会尝试同步高亮定位
  3. 如果左侧尚未加载到该帖子,脚本会自动尝试触发“加载更多”查找

⌨️ 快捷键

快捷键 功能
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 可能失败
  • 超长帖、超多图片的帖子,导出时间会更长
  • 该脚本主要面向桌面端浏览器,移动端体验不作为当前优化重点

❓ FAQ

1. 为什么导出 PNG 失败?

常见原因有:

  • 右侧帖子还没有完全加载完成
  • 帖子中含有跨域图片或防盗链图片,浏览器不允许写入 canvas
  • 当前帖子过长、资源过多,浏览器内存不足
  • html2canvas CDN 临时访问失败

建议依次尝试:

  1. 等待右侧预览完全加载后再导出
  2. 换一个帖子测试
  3. 刷新页面后重试
  4. 检查网络是否能访问 jsdelivr / unpkg
2. 为什么重新打开列表页后,没有恢复到左侧高亮位置?

有两种可能:

  • 当前列表中还没加载到那条帖子,脚本会尝试自动加载更多去找
  • 论坛页面结构或“加载更多”入口发生变化,导致自动定位失败

即使左侧未能成功定位,右侧一般仍会优先恢复到上次浏览的帖子页面。

3. 为什么左栏没有自动继续加载更多?

脚本只会在接近左栏底部时尝试自动加载,并且有冷却时间与状态判断。
如果论坛本身没有更多内容、按钮不可见、或页面正处于忙碌状态,脚本就不会继续点击。

4. 为什么快捷键没有反应?

请检查:

  • 当前焦点是否在输入框、文本框、按钮或可编辑区域中
  • 是否有浏览器扩展或站点脚本占用了同一快捷键
  • 当前页面是否确实是匹配的帖子列表页
5. 已读记录和浏览记录存在哪里?如何清掉?

它们保存在浏览器本地 localStorage 里。
你可以:

  • 直接使用脚本提供的“清痕迹”按钮清除当前页已读记录
  • 或在浏览器开发者工具 / 网站数据设置中手动清理站点本地存储
6. 为什么采用 iframe 预览,而不是直接把帖子内容抓到当前页面?

因为妖火帖子本身就是同源页面,使用 iframe 可以:

  • 更稳定地复用原帖页面结构
  • 减少自己重新解析帖子 DOM 的复杂度
  • 更方便做导出前的评论展开与内容清理

🛣️ 开发方向

  • 增加更细的调试日志开关
  • 进一步提升对页面结构变化的兼容性
  • 继续优化超长帖 PNG 导出体验
  • 视情况补充更多快捷键与列表操作能力

🙌 致谢

感谢以下项目与生态:

  • html2canvas 提供页面转 canvas / PNG 的核心能力
  • Tampermonkey
  • Violentmonkey
  • 妖火论坛的实际使用场景与页面结构,为本脚本提供了真实的优化目标
  • 所有提出问题、体验建议、兼容性反馈的使用者

本项目为个人增强脚本,与妖火论坛官方无从属关系,也不代表任何官方立场。


📮 反馈与联系

如果这个项目对你有帮助,欢迎点一个 Star


📄 开源协议

本项目基于 MIT License 开源,详见 LICENSE


About

妖火论坛帖子列表页双栏预览脚本:双栏阅读、已读记录、上次阅读自动恢复、自动加载更多帖子、帖子内容PNG导出、评论展开。

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors