是否可以使用书签隐藏 Youtube Shorts 元素?
Is hiding Youtube Shorts elements with a bookmarklet possible?
如果关联文本的时间跨度短于 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/))
但我不想在加载时阻止所有内容。我只是希望能够在加载用户的视频概览页面后隐藏这些元素。我在 Whosebug 上搜索并找到了这个隐藏图像的小书签 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。
为什么我不能让它工作?
我自己找到了一个可行的解决方案,我不知道我必须在 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"}());
如果关联文本的时间跨度短于 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/))
但我不想在加载时阻止所有内容。我只是希望能够在加载用户的视频概览页面后隐藏这些元素。我在 Whosebug 上搜索并找到了这个隐藏图像的小书签 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。 为什么我不能让它工作?
我自己找到了一个可行的解决方案,我不知道我必须在 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"}());