您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Toggle YouTube heart comments.
当前为
// ==UserScript== // @name Toggle YouTube Heart Comments // @namespace https://github.com/gslin/toggle-youtube-heart-comments-userscript // @match https://www.youtube.com/* // @grant none // @version 0.20210601.0 // @author Gea-Suan Lin <[email protected]> // @description Toggle YouTube heart comments. // @license MIT // ==/UserScript== (() => { 'use strict;' let ob = new window.MutationObserver(mutations => { mutations.forEach(mutation => { mutation.addedNodes.forEach(() => { // Only filter pages whose path are "/watch". if (document.location.pathname !== '/watch') { return; } let sheet = document.querySelector('.has-creator-heart-style'); if (!sheet) { sheet = document.createElement('style'); sheet.classList.add('has-creator-heart-style'); document.getElementsByTagName('head')[0].appendChild(sheet); } // Wait for ytd-comments element ready. let comments_el = document.querySelector('ytd-comments'); if (!comments_el) { return; } // Simulate "ytd-comment-thread-renderer:has(ytd-creator-heart-renderer)" selector. let comments_heart = document.querySelectorAll('ytd-comment-thread-renderer'); comments_heart.forEach(el => { if (el.querySelector('ytd-creator-heart-renderer')) { el.classList.add('has-creator-heart'); } }); // Don't install twice. if (document.getElementById('toggle_youtube_heart_comments')) { return; } let toggle_el = document.createElement('div'); toggle_el.innerHTML = '<button data-status="0" id="toggle_youtube_heart_comments">All (All / Heart / Non-Heart)</button>'; let button_el = toggle_el.querySelector('button'); toggle_el.addEventListener('click', () => { if (button_el.dataset.status === '0') { button_el.dataset.status = '1'; button_el.innerHTML = 'Heart (All / Heart / Non-Heart)'; sheet.innerHTML = 'ytd-comment-thread-renderer:not(.has-creator-heart) { display: none; }' } else if (button_el.dataset.status === '1') { button_el.dataset.status = '2'; button_el.innerHTML = 'Non-Heart (All / Heart / Non-Heart)'; sheet.innerHTML = 'ytd-comment-thread-renderer.has-creator-heart { display: none; }' } else { button_el.dataset.status = '0'; button_el.innerHTML = 'All (All / Heart / Non-Heart)'; sheet.innerHTML = ''; } }); comments_el.insertAdjacentElement('beforebegin', toggle_el); console.debug('Toggle YouTube Heart Comments installed.'); }); }); }); ob.observe(document, { childList: true, subtree: true, }); })();