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

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

1 zjsxwc Aug 13, 2017 定位不了的,因为感谢 收藏也被算作 reply,然后就乱掉了。 |
6 flowfire Aug 13, 2017 需要上架 chrome store 么,我有账号 |
7 lslqtz Aug 13, 2017 提醒的链接有锚点,标记了回复的楼层。 根据这个,直接点击链接后也许可以实现直接定位高亮。 |
8 lslqtz Aug 13, 2017 具体看了看。 1、感谢和收藏也被算作 reply,但是能判断。 2、精确还是没问题的。 根据锚点上对应的回复楼层可以用扩展算出位置,并且不用增加额外的按钮,改变原有的体验。 这样的设计是真的不错,锚点不会给传到服务端。 |
9 yangff Aug 13, 2017 我记得如果 block 了用户这个 replyX 会不准确吧 |
12 hanzichi OP @lslqtz 1. 感谢和收藏并不是 reply,只是表示当时该主题帖 reply 的数量 2. 不改变原有的体验是可以的,把「查看」按钮的 url 赋值到帖子 url 上,但是在原来 dom 上操作,我觉得不优雅。而 url 是必须变化的,因为感谢,收藏,以及回复可能是一个 url,而收藏帖子很显然不能跳转,感谢对应的 reply 并不是直接的感谢帖子,而是这次感谢操作时该主题的回复数量。 |
14 autoxbc Aug 14, 2017 感谢楼主的思路,吐槽楼主的代码 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 为什么不用 |
16 hanzichi OP |