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

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

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

    安装方式

    事情起因

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

    在 https://www.v2ex.com/notifications 页面,如果是别人回复你的通知,会有一个「查看」按钮,如图

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

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

    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
    hanzichi
    OP
    Aug 14, 2017
    15
    @autoxbc 感谢 review,代码已优化,确实不知道有 scrollIntoView 这个方法,再次感谢! 有其他代码问题还望指出~
    hanzichi
    hanzichi
    OP
    Aug 15, 2017
    16
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   5394 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 39ms · UTC 01:53 · PVG 09:53 · LAX 17:53 · JFK 20:53
    ♥ Do have faith in what you're doing.