据我所知,目前有三种方法可以禁用youtube视频中的注释:
||youtube.com/annotations_
添加到它的过滤器中。这与上一点存在相同的问题。此外,它会完全禁用它们,而我只是想在默认情况下将它们关闭(所以我可以选择打开它们)。使用JavaScript可以做到这一点吗?我有一个UserScript,它已经对YouTube的网站进行了一些修改,所以理想情况下我想扩展它。这真的是我错过的最后一件事。
我要求答案仅限于使用JS,而不是浏览器扩展推荐。这既是因为(如前所述),我已经知道这些,也因为这是关于学习过程的,也是关于结果的。这是对更多UserScripts的练习。
发布于 2014-09-03 23:25:50
因为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
}
}
发布于 2015-06-16 00:04:27
用户代码正确,需要单击设置,然后:
document.querySelectorAll("div[role='menuitemcheckbox']")[1].click()
我把它添加到我的“关闭自动播放和注解”脚本中:https://gist.github.com/Sytric/4700ee977f427e22c9b0
之前工作过的JS:
document.querySelectorAll("div[aria-labelledby=\"ytp-menu-iv\"]")[0].click()
发布于 2018-07-01 06:05:34
我知道您不想为此使用扩展,但这是解决您的问题的最灵活、最简单的方法。扩展让我们能够使用后台脚本,通过它我们可以将css和javascript注入到打开的网页中。我在这个https://chrome.google.com/webstore/detail/hide-labels-and-end-cards/jinenhpepbpkepablpjjchejlabbpken上做了一个扩展,它也有一个停止-开始按钮,我只是注入了与之前相反的代码。如果您在这方面需要任何进一步的帮助,我很乐意。
https://stackoverflow.com/questions/23687561
复制相似问题