【发布时间】:2022-01-16 15:03:56
【问题描述】:
我正在构建一个 Chrome 扩展程序,它与我的 Youtube 后端屏幕上可见的 Youtube cmets 交互。我希望扩展能够遍历 cmets 列表并像这样一一突出显示它们:
我通过以下方式在屏幕上获取 cmets:
return document.querySelectorAll(".ytcp-comment-thread .style-scope.ytcp-comments-section #comment")[currentIndex]
然后维护currentIndex 以了解我目前在哪个元素。
这适用于前几个 cmets,但随后会开始突出显示错误的注释。检查页面后,我注意到评论 divs 的顺序并不完全代表屏幕上 cmets 的顺序。相反,它们似乎是由一个名为 translate3d 的属性放置的:
如何才能准确地遍历屏幕上的所有这些 cmets?
编辑:以下是 Youtube 如何将页面的最后一个 cmets(延迟加载)放在 HTML 元素顶部的示例:
作为代码:
<div class="ytcp-comment-thread style-scope ytcp-comments-section" style="transform: translate3d(0px, 11596px, 0px);">
<div class="ytcp-comment-thread style-scope ytcp-comments-section" style="transform: translate3d(0px, 11800px, 0px);">
<div class="ytcp-comment-thread style-scope ytcp-comments-section" style="transform: translate3d(0px, 12004px, 0px);">
<div class="style-scope ytcp-comments-section" style="transform: translate3d(0px, 12208px, 0px);">
<div class="ytcp-comment-thread style-scope ytcp-comments-section" style="transform: translate3d(0px, 980px, 0px);">
<div class="ytcp-comment-thread style-scope ytcp-comments-section" style="transform: translate3d(0px, 1184px, 0px);">
【问题讨论】:
-
您能否提供一个您收到的 HTML 的(简短)示例,比如只有六个 cmets,但其中一些“顺序错误” - 这可能有助于解决问题。
-
@AHaworth 我认为 HTML 太大,无法在此处粘贴,但我添加了显示问题的屏幕截图。
-
你能粘贴说前 7 个吗 - 我可以从图像中看到它是什么,但不想输入它:)
-
@AHaworth 我添加了一些代码!
标签: javascript html css google-chrome-extension frontend