写了一个能定位到相关回复内容的扩展,有需要的拿走,再也不用整个页面查找回复消息了 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
请不要在回答技术问题时复制粘贴 AI 生成的内容
hanzichi

写了一个能定位到相关回复内容的扩展,有需要的拿走,再也不用整个页面查找回复消息了

  •  
  •   hanzichi Aug 13, 2017 3400 views
    This topic created in 3180 days ago, the information mentioned may be changed or developed.

    安装方式

    事情起因

    混迹 v 站也蛮久了,对于某个地方一直很有疑惑,就是别人回复了你的帖子或者内容,点击通知却无法定位到指定的回复内容,真是蛋疼。以前以为是个 bug,一直等等等,等修复,等了一年了没有这个功能,终于一气之下花了两个小时写了个 chrome 扩展

    notifications 页面,如果是别人回复你的通知,会有一个「查看」按钮,如图

    此时不要点帖子标题,点击「查看」按钮,就能跳转到该条回复,并高亮内容

    Supplement 1    Aug 13, 2017
    可能会与现有其他作用于 V2EX 的插件 /扩展冲突,有任何冲突可以留言
    16 replies    2017-08-15 18:10:59 +08:00
    zjsxwc
        1
    zjsxwc  
       Aug 13, 2017
    定位不了的,因为感谢 收藏也被算作 reply,然后就乱掉了。
    hanzichi
        2
    hanzichi  
    OP
       Aug 13, 2017
    @zjsxwc #1 感谢和收藏的不能定位,回复能定位,你可以试试 ...
    leyucode
        3
    leyucode  
       Aug 13, 2017 via iPhone
    @hanzichi 我一直觉得需要个,像知乎那样的,别人评论了,也可以通知到,能做出这样的功能吗?不过能做出现在这样已经很牛了
    hanzichi
        4
    hanzichi  
    OP
       Aug 13, 2017
    @leyucode 知乎是怎么通知到的,右上角给个小红点?
    leyucode
        5
    leyucode  
       Aug 13, 2017 via iPhone
    @hanzichi 有个栏目,别人发的评论收在这个栏目下面,有新的会在那一栏出现蓝色小点
    flowfire
        6
    flowfire  
       Aug 13, 2017   1
    需要上架 chrome store 么,我有账号
    lslqtz
        7
    lslqtz  
       Aug 13, 2017
    提醒的链接有锚点,标记了回复的楼层。
    根据这个,直接点击链接后也许可以实现直接定位高亮。
    lslqtz
        8
    lslqtz  
       Aug 13, 2017
    具体看了看。
    1、感谢和收藏也被算作 reply,但是能判断。
    2、精确还是没问题的。
    根据锚点上对应的回复楼层可以用扩展算出位置,并且不用增加额外的按钮,改变原有的体验。
    这样的设计是真的不错,锚点不会给传到服务端。
    yangff
        9
    yangff  
       Aug 13, 2017
    我记得如果 block 了用户这个 replyX 会不准确吧
    hanzichi
        10
    hanzichi  
    OP
       Aug 14, 2017
    @leyucode 不是很懂,有时间体验下
    hanzichi
        11
    hanzichi  
    OP
       Aug 14, 2017
    @flowfire 谢谢哥们,暂时不用~ 再次感谢
    hanzichi
        12
    hanzichi  
    OP
       Aug 14, 2017
    @lslqtz
    1. 感谢和收藏并不是 reply,只是表示当时该主题帖 reply 的数量
    2. 不改变原有的体验是可以的,把「查看」按钮的 url 赋值到帖子 url 上,但是在原来 dom 上操作,我觉得不优雅。而 url 是必须变化的,因为感谢,收藏,以及回复可能是一个 url,而收藏帖子很显然不能跳转,感谢对应的 reply 并不是直接的感谢帖子,而是这次感谢操作时该主题的回复数量。
    hanzichi
        13
    hanzichi  
    OP
       Aug 14, 2017
    @yangff 亲测没问题,block 后楼层并不会断层
    autoxbc
        14
    autoxbc  
       Aug 14, 2017   1
    感谢楼主的思路,吐槽楼主的代码

    let lis = [].slice.call(document.querySelectorAll('#Main > div:nth-child(2) > .cell'), 0)
    [].slice.call 为什么还要加个 0 作为参数,这个没意义吧

    lis = lis.filter(item => item.id)
    这一句为什么不合并到上一句,写成
    let lis = [].slice.call(document.querySelectorAll('#Main > div:nth-child(2) > .cell[id]'))

    let top = getElementTop(lis[floor - 1])
    window.scrollTo(0, top)
    这里有现成的 scrollIntoView 为什么不用
    hanzichi
        15
    hanzichi  
    OP
       Aug 14, 2017
    @autoxbc 感谢 review,代码已优化,确实不知道有 scrollIntoView 这个方法,再次感谢! 有其他代码问题还望指出~
    hanzichi
        16
    hanzichi  
    OP
       Aug 15, 2017
    About     Help     Advertise     Blog     API     FAQ     Solana     2936 Online   Highest 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 42ms UTC 15:22 PVG 23:22 LAX 08:22 JFK 11:22
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86