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

2017-08-13 21:43:50 +08:00
 hanzichi

安装方式

事情起因

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

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

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

3037 次点击
所在节点    程序员
16 条回复
zjsxwc
2017-08-13 21:50:29 +08:00
定位不了的,因为感谢 收藏也被算作 reply,然后就乱掉了。
hanzichi
2017-08-13 21:56:33 +08:00
@zjsxwc #1 感谢和收藏的不能定位,回复能定位,你可以试试 ...
leyucode
2017-08-13 22:06:16 +08:00
@hanzichi 我一直觉得需要个,像知乎那样的,别人评论了,也可以通知到,能做出这样的功能吗?不过能做出现在这样已经很牛了
hanzichi
2017-08-13 22:18:56 +08:00
@leyucode 知乎是怎么通知到的,右上角给个小红点?
leyucode
2017-08-13 22:47:15 +08:00
@hanzichi 有个栏目,别人发的评论收在这个栏目下面,有新的会在那一栏出现蓝色小点
flowfire
2017-08-13 23:15:36 +08:00
需要上架 chrome store 么,我有账号
lslqtz
2017-08-13 23:46:06 +08:00
提醒的链接有锚点,标记了回复的楼层。
根据这个,直接点击链接后也许可以实现直接定位高亮。
lslqtz
2017-08-13 23:49:32 +08:00
具体看了看。
1、感谢和收藏也被算作 reply,但是能判断。
2、精确还是没问题的。
根据锚点上对应的回复楼层可以用扩展算出位置,并且不用增加额外的按钮,改变原有的体验。
这样的设计是真的不错,锚点不会给传到服务端。
yangff
2017-08-13 23:56:34 +08:00
我记得如果 block 了用户这个 replyX 会不准确吧
hanzichi
2017-08-14 06:42:37 +08:00
@leyucode 不是很懂,有时间体验下
hanzichi
2017-08-14 06:43:02 +08:00
@flowfire 谢谢哥们,暂时不用~ 再次感谢
hanzichi
2017-08-14 06:47:09 +08:00
@lslqtz
1. 感谢和收藏并不是 reply,只是表示当时该主题帖 reply 的数量
2. 不改变原有的体验是可以的,把「查看」按钮的 url 赋值到帖子 url 上,但是在原来 dom 上操作,我觉得不优雅。而 url 是必须变化的,因为感谢,收藏,以及回复可能是一个 url,而收藏帖子很显然不能跳转,感谢对应的 reply 并不是直接的感谢帖子,而是这次感谢操作时该主题的回复数量。
hanzichi
2017-08-14 06:47:59 +08:00
@yangff 亲测没问题,block 后楼层并不会断层
autoxbc
2017-08-14 07:02:41 +08:00
感谢楼主的思路,吐槽楼主的代码

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
2017-08-14 09:40:09 +08:00
@autoxbc 感谢 review,代码已优化,确实不知道有 scrollIntoView 这个方法,再次感谢! 有其他代码问题还望指出~
hanzichi
2017-08-15 18:10:59 +08:00

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/382666

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX