Skip to content

[Bug] 12.7.0 漫画柜进入阅读模式后第一页无法正常显示 #356

Description

@YJayz

在提交 issue 之前,请先确认

  • 脚本已更新至最新版本

使用的油猴扩展是?

Tampermonkey

使用的浏览器是?

chrome 151.0.7922.170

问题会在哪个网页上出现?

https://www.manhuagui.com/

问题是?

ComicRead 12.7.0 在漫画柜([www.manhuagui.com)进入阅读模式后,第一页无法正常显示图片。,-kg1hv6rxzfpsht8tqfcnu8a78a287afsee5gh10a4s2afzhzw1gf9q654ajzl./)](http://www.manhuagui.com)进入阅读模式后,第一页无法正常显示图片。)

复现步骤

  1. 打开漫画柜任意漫画章节。
  2. 进入 ComicRead 阅读模式。
  3. 进入阅读模式后停留在第一页,不进行任何滚动。

实际结果

第一页图片无法正常显示。

如果先向下滚动到第二页,再滚回第一页,第一页就会正常显示。

这个问题在 ComicRead 12.6.0 中没有出现,升级到 12.7.0 后出现,可以稳定复现。

预期结果

进入阅读模式后,第一页应该直接正常加载并显示,不需要先滚动到下一页再滚回来。

版本对比和问题排查

我将正常的 12.6.0 和出现问题的 12.7.0 两个完整脚本提供给 ChatGPT 进行源码对比和排查。

ChatGPT 对比后发现,12.6.0 和 12.7.0 中漫画柜本身的 getImgList() 取图逻辑基本一致,因此继续检查了 12.7.0 重构后的公共图片加载状态管理。

ChatGPT 定位到 12.7.0 的 handleImgList() 在初始化图片列表后执行:

syncImgLoadState();

但同步完新的图片加载状态后,没有立即重新执行图片加载调度:

updateImgLoadType();

而 12.7.0 中图片如果仍处于:

img.loadType === "wait"

实际图片 src 不会被设置,因此可能导致首次进入阅读模式时,当前第一页仍停留在等待状态。

滚动到下一页后,由于显示范围发生变化,会再次触发图片加载调度,所以再滚回第一页时图片已经能够正常显示。这与实际遇到的现象一致。

ChatGPT 提供的临时修复

ChatGPT 基于原版 12.7.0 只进行了以下主要修改:

syncImgLoadState();
+updateImgLoadType();

也就是在 handleImgList() 初始化图片列表并执行 syncImgLoadState() 后,立即额外执行一次 updateImgLoadType()

测试版本的版本号临时修改为 12.7.0.1,除此之外没有回退 12.7.0 的其他功能。

实际测试结果

我安装了 ChatGPT 修改后的 12.7.0.1 测试版本,并在之前能够稳定复现问题的漫画柜页面进行了测试。

修改前:

进入阅读模式
→ 第一页不正常显示
→ 滚动到第二页
→ 再滚回第一页
→ 第一页恢复正常

修改后:

进入阅读模式
→ 第一页直接正常显示

目前在漫画柜上的实际测试中,这个修改已经解决了第一页无法正常显示的问题。

以上代码定位和修改方案由 ChatGPT 根据 12.6.0 / 12.7.0 源码对比得出,实际页面测试由我完成。

由于我不了解项目内部完整的设计意图,不确定直接在这里调用一次 updateImgLoadType() 是否是作者认为最合适的最终修复方式,因此主要提供问题现象、源码定位以及已经验证有效的临时修复方案供参考。

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions