• 请不要在回答技术问题时复制粘贴 AI 生成的内容
Hirah
V2EX  ›  程序员

V2EX.REP 的“当前页热门回复”侧栏错位、楼号点了不跳,分享个临时修复

  •  
  •   Hirah · 11h 34m ago · 521 views

    一直在用 V2EX.REP 这个扩展看帖子,主要用它右边的“当前页热门回复”。前两天突然发现那一栏错位了:用户名和时间被挤成一个字一行,点楼号也跳不到原楼层了。

    等了几天没见更新,手痒,就让 Claude Code 帮着查了一下,顺手修了。说明一下,我不是作者,跟作者也不认识,只是遇到问题修了一下,发出来给遇到同样问题的人参考。

    原因

    V2EX 最近改了回复区的结构,用户名、时间和红心现在排在一个弹性布局的行里,原来那个装感谢、回复按钮的工具栏(.fr)也没了。插件还是按旧结构写的,于是出了两个问题:

    1. 侧栏只有 270px 宽,这一行被压缩,用户名和时间就挤成了竖排。
    2. 插件复制回复到侧栏时,会找旧工具栏,把楼号换成能点的链接。新结构里找不到这个工具栏,楼号就一直是普通文字,点了没反应。

    修复方法

    不用改插件本身,在 Tampermonkey (或其他用户脚本管理器)里新建一个脚本,粘贴下面的内容并保存,再刷新帖子页就行:

    // ==UserScript==
    // @name         V2EX.REP 热门回复侧栏修复补丁
    // @namespace    v2ex-rep-top-replies-patch
    // @version      1.0
    // @description  V2EX 改版后,V2EX.REP 右侧“当前页热门回复”用户名被挤成竖排、楼号点了不跳转
    // @match        https://*.v2ex.com/t/*
    // @match        https://v2ex.com/t/*
    // @match        https://*.v2ex.co/t/*
    // @run-at       document-start
    // @grant        GM_addStyle
    // ==/UserScript==
    
    // 1. 排版:用户名、时间、红心在侧栏里换行显示,不再挤成一字一行
    GM_addStyle(`
    #top_replies td > .flex-one-row { flex-wrap: wrap; row-gap: 4px; }
    #top_replies td > .flex-one-row > .flex-one-row:first-child { flex: 1 1 100%; flex-wrap: wrap; min-width: 0; row-gap: 2px; }
    #top_replies td > .flex-one-row > .flex-one-row:last-child { margin-left: auto; }
    #top_replies td > .flex-one-row strong { flex: 1 1 100%; min-width: 0; overflow-wrap: anywhere; }
    #top_replies td > .flex-one-row .ago { white-space: nowrap; }
    #top_replies td > .flex-one-row br { display: none; }
    #top_replies .no { cursor: pointer; }
    `);
    
    // 2. 点击:侧栏里的楼号点一下,跳到正文里对应的那条回复
    document.addEventListener('click', (event) => {
      const no = event.target.closest('#top_replies .no');
      if (!no) return;
      const cloned = no.closest('[id^="top_r_"]');
      const target = cloned && document.getElementById(cloned.id.slice(4));
      if (!target) return;
      event.preventDefault();
      event.stopPropagation();
      target.scrollIntoView({ block: 'start' });
    }, true);
    

    修好后,侧栏每条回复第一行是用户名,第二行是时间和红心,楼号能点了。

    几点说明:

    • 我只在 Chrome + Tampermonkey 、V2EX 默认主题下试过。用了 V2EX Polish 之类改样式的扩展,可能不适用。
    • 这只是个临时补丁。等作者更新修好了,把它删掉就行,留着一般也不冲突。
    • 如果你是用 Chrome 商店的扩展版而不是用户脚本版,这个补丁照样能装,前提是装了 Tampermonkey 。
    • 已经给作者提了 issue: https://github.com/v2hot/v2ex.rep/issues/6
    4 replies  •  2026-11-05 20:25:58 +08:00
    yeyeye
    yeyeye
    1h 24m ago
    1
    请问楼主一个 github 问题,你提了 issues 之后,在你的 github 首页,左侧 Top repositories 区域,是不是显示了 v2ex.rep 的项目?

    我之前给 sov2ex 提了一个 issues ,然后就出现在 github 首页 Top repositories ,好像是挂了 1 年还是半年才消失,完全不知道要怎样让它不要显示(毕竟只是提了个反馈,没必要天天在首页看到这个项目)
    yeyeye
    yeyeye
    1h 12m ago
    2
    @Pipecraft

    搭楼补充一个 bug 。

    您的 V2EX.REP 油猴脚本,在为回复框增加“+ 插入图片”功能的时候,有时候会添加 2 个,看着特别别扭,有时候又不会,具体原因不明,能不能在添加的时候做一个判断,已经添加过了就不要重复添加了,当然具体原因我不懂,希望能修正,感谢。

    Pipecraft
    Pipecraft
    1h 1m ago
    3
    参考你提的 issue ,已经修复了问题,发布了新版本。非常感谢。

    “+ 插入图片” 显示两个的问题我现在看一下。因为这个图片上传功能我已经用另一个插件代替了,所以 V2EX.REP 里的这个功能我关掉了,没遇到过这个问题。

    https://greasyfork.org/zh-CN/scripts/553341-universal-image-uploader
    这个图片上传脚本的功能更强大些。
    yeyeye
    yeyeye
    41 mins ago
    4
    @Pipecraft #3

    辛苦大佬了。

    这个是偶发的,有时候测试几次也出不来
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   2713 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 13:07 · PVG 21:07 · LAX 05:07 · JFK 08:07
    ♥ Do have faith in what you're doing.