类似segmentfault从通知进入某个问题评论自动定位到被回复的位置并设置高亮

clipboard.png

从这里点击某个链接,
页面会自动跳转到被回复评论出,并且设置了 高亮
请问,这种功能如何实现?
看url 后缀 比普通 从我的提问进的url 多了 ?_ea=3777951 这个后缀,

阅读 3.3k
2 个回答

查看页面:

clipboard.png

发现特殊类名highlight
查看源码 question.min.js

clipboard.png

ctrl+f 搜索highlight

clipboard.png

顺藤摸瓜找到id为 SFEventObject 的元素:

clipboard.png

结合 question.min.js 里截图部分的代码可知:

var i = JSON.parse($("#SFEventObject").attr("value")) // {"current":["comment",["1050000016688191"]],"root":["answer","1020000016687212"]}
var x = I.current[1] // ["1050000016688191"]

循环X ->

$("html, body").scrollTop($("#" + "1050000016688191").offset().top)

id为 SFEventObject 的元素是后台渲染html页面的时候根据?_ea=xxx来查询出应该高亮的回复id直接写在meta里面

奏是辣么简单

每个回复都对应一个id, ?_ea=3777951我推测这个就是回复的id,带上id匹配对应的回复给他高亮就好了,滚动到对应位置的话ScrollIntoView应该可以

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题