如何使用 JS 在 YouTube 的评论框中 focus/click (DOM)

How to focus/click on YouTube's Comment Box with JS (DOM)

1。上下文

我正在创建 browser extension to enhance YouTube's keyboard navigation。我想到的快捷方式之一是评论1.

1:我目前使用的是 Dart,但它模仿 JS,后来无论如何都会被转换成它。

2。我试过的

YouTube 使用了很多自定义的 HTML 元素,所以我一直不清楚什么有效,什么时候有效,我最终不得不对每次遇到的问题进行逆向工程自定义标签。

我基本上尝试过大部分这样的事情:

document.querySelector('#labelAndInputContainer > div').click();

我应该改用 focus() 吗?

div#labelAndInputContainer 元素获得一个新的 class,一旦它被聚焦,就会得到一个名为 focused 的新 class。

3。其他可选挑战

The discussion of this last section has been redirected to this other question.

起初,YouTube 不会加载视频下方的评论部分。只有当你向下滚动时评论部分才会出现2。那么我怎样才能找出是哪个事件触发了评论部分的加载呢?我怎么能人为地派遣它? — 否则评论框的 HTML 元素将不存在。

我一直在使用 getEventListeners() 来确定哪些事件对哪些元素起作用。

2:另一个例子是当一个 YouTube 页面 reloads/navigates 到另一个页面时,这是由 yt-navigate-start 触发的。


您可能已经注意到,我不是 JS 专家,所以请随时深入了解基础知识或给我新手提示。

目前您可以使用其 Id 关注评论输入:

document.getElementById("simplebox-placeholder").focus();

但是,它不会加载,直到您 page-down 并等待它加载。所以,page-down稍等一下。

此外,根据 window 的宽度,您可能需要多个 page-down。