首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >使用JavaScript关闭Youtube批注

使用JavaScript关闭Youtube批注
EN

Stack Overflow用户
提问于 2014-05-16 04:01:12
回答 5查看 4.2K关注 0票数 11

据我所知,目前有三种方法可以禁用youtube视频中的注释:

  1. 您可以使用YouTube设置。这对我不起作用,因为我没有(也不想要)一个帐户。
  2. 你可以使用一个专门的扩展。这可能行得通,但我不希望有一个功能齐全的扩展,因为它有很多选项。
  3. 你可以使用(Ad)拦截扩展,并将||youtube.com/annotations_添加到它的过滤器中。这与上一点存在相同的问题。此外,它会完全禁用它们,而我只是想在默认情况下将它们关闭(所以我可以选择打开它们)。

使用JavaScript可以做到这一点吗?我有一个UserScript,它已经对YouTube的网站进行了一些修改,所以理想情况下我想扩展它。这真的是我错过的最后一件事。

我要求答案仅限于使用JS,而不是浏览器扩展推荐。这既是因为(如前所述),我已经知道这些,也因为这是关于学习过程的,也是关于结果的。这是对更多UserScripts的练习。

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2014-09-03 23:25:50

因为youtube有时会改变玩家的行为,所以我会尽量保持代码的更新和健壮性。

代码语言:javascript
复制
var settings_button = document.querySelector(".ytp-settings-button");
settings_button.click(); settings_button.click(); // open and close settings, so annotations label is created

var all_labels = document.getElementsByClassName("ytp-menuitem-label");
for (var i = 0; i < all_labels.length; i++) {
  if ((all_labels[i].innerHTML == "Annotations") && (all_labels[i].parentNode.getAttribute("aria-checked") == "true")) { // find the correct label and see if it is active
    all_labels[i].click(); // and in that case, click it
  }
}
票数 8
EN

Stack Overflow用户

发布于 2015-06-16 00:04:27

用户代码正确,需要单击设置,然后:

代码语言:javascript
复制
document.querySelectorAll("div[role='menuitemcheckbox']")[1].click() 

我把它添加到我的“关闭自动播放和注解”脚本中:https://gist.github.com/Sytric/4700ee977f427e22c9b0

之前工作过的JS:

代码语言:javascript
复制
document.querySelectorAll("div[aria-labelledby=\"ytp-menu-iv\"]")[0].click()
票数 0
EN

Stack Overflow用户

发布于 2018-07-01 06:05:34

我知道您不想为此使用扩展,但这是解决您的问题的最灵活、最简单的方法。扩展让我们能够使用后台脚本,通过它我们可以将css和javascript注入到打开的网页中。我在这个https://chrome.google.com/webstore/detail/hide-labels-and-end-cards/jinenhpepbpkepablpjjchejlabbpken上做了一个扩展,它也有一个停止-开始按钮,我只是注入了与之前相反的代码。如果您在这方面需要任何进一步的帮助,我很乐意。

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23687561

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档