【问题标题】:Is hiding Youtube Shorts elements with a bookmarklet possible?可以用书签隐藏 Youtube Shorts 元素吗?
【发布时间】:2022-01-03 01:00:37
【问题描述】:

如果相关文本的时间跨度短于 70 秒,则会有一个浮动的 uBlock 过滤器隐藏所有视频缩略图:

www.youtube.com##ytd-browse ytd-grid-video-renderer:has(span.ytd-thumbnail-overlay-time-status-renderer:has-text(/\s(0:\d\d|1:0\d)\s/))

但我不想在加载时阻止所有内容。我只是希望能够在加载用户的视频概览页面后隐藏元素。我在 stackoverflow 上搜索并找到了这个通过 getElementsByTagName 隐藏图像的小书签:

javascript bookmarklet to hide all images from current webpage?

javascript:(function(){var imgs=document.getElementsByTagName("img");for(var i=0;i<imgs.length;i++)imgs[i].style.visibility="hidden"}());

在调整这个小书签以将其与上面使用 getElementsByClassName 编写的 CSS 选择器匹配时,我失去了一些头发。它只是没有用。文本元素 (span.ytd-thumbnail-overlay-time-status-renderer:has-text) 应小于 70 秒,父元素 ytd-grid-video-renderer然后应该删除 em>。 为什么我不能让它工作?

【问题讨论】:

    标签: javascript css youtube bookmarklet


    【解决方案1】:

    我自己找到了一个可行的解决方案,我不知道我必须在 javascript 中而不是在 CSS 选择器中进行搜索。这行代码正是我想要的:

    javascript:(function(){var tn=document.getElementsByClassName("ytd-thumbnail-overlay-time-status-renderer");for(var i=0;i<tn.length;i++)if(tn[i].textContent.match(/\s(0:\d\d|1:0\d)\s/))tn[i].closest("ytd-grid-video-renderer").style.visibility="hidden"}());
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-05-21
      • 1970-01-01
      • 1970-01-01
      • 2022-01-03
      • 2019-02-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多