使用JavaScript关闭Youtube注释

时间:2014-05-15 20:01:12

标签: javascript youtube

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

  1. 您可以使用YouTube设置。这对我不起作用,因为我没有(也不想要)一个帐户。
  2. 您可以使用专门的扩展程序。这可能有用,但我宁愿没有一个包含大量选项的全面延期,只是为了那个。
  3. 您可以使用(广告)屏蔽扩展程序,并将||youtube.com/annotations_添加到其过滤器中。这与前一点有同样的问题。此外,它完全禁用它们,而我只是希望它们默认关闭(所以我可以选择打开它们。)
  4. 可以使用JavaScript吗?我有一个UserScript已经对YouTube的网站进行了一些修改,所以理想情况下我想扩展它。这真的是我失踪的最后一件事。

    我要求答案仅限于使用JS而不是浏览器扩展建议。两者都是因为(如上所述),我已经知道了这些,因为这与学习过程和结果有关。这是更多UserScript的实践。

5 个答案:

答案 0 :(得分:7)

由于youtube有时会改变玩家的行为,因此我会尝试尽可能保持代码的最新状态。

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
  }
}

答案 1 :(得分:0)

用户的代码是正确的,设置需要点击&amp;然后:

document.querySelectorAll("div[role='menuitemcheckbox']")[1].click() 

我将它添加到我的&#34;关闭自动播放&amp;注释&#34;脚本:https://gist.github.com/Sytric/4700ee977f427e22c9b0

以前工作的JS:

document.querySelectorAll("div[aria-labelledby=\"ytp-menu-iv\"]")[0].click()

答案 2 :(得分:-1)

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

答案 3 :(得分:-2)

答案 4 :(得分:-2)

这是一个很好的解决方案,只需用注释隐藏div

$("div.video-annotations").css("display", "none");