您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Removes inline YouTube shorts from the feed by targeting 'ytm-shorts-lockup-view-model-v2' and removing its parent.
// ==UserScript== // @name YouTube Remove Inline Shorts // @namespace PoKeRGT // @version 0.2.1 // @description Removes inline YouTube shorts from the feed by targeting 'ytm-shorts-lockup-view-model-v2' and removing its parent. // @author PoKeRGT // @match *://www.youtube.com/* // @grant none // @run-at document-idle // @homepageURL https://github.com/PoKeRGT/userscripts // @license MIT // ==/UserScript== (function () { 'use strict'; const SHORTS_SELECTOR = 'ytm-shorts-lockup-view-model-v2'; function removeParentOfShort(shortElement) { if (shortElement && shortElement.parentNode) { shortElement.parentNode.remove(); } } function removeInlineShorts() { const shortsElements = document.querySelectorAll(SHORTS_SELECTOR); shortsElements.forEach(removeParentOfShort); } // Ejecutar la función al cargar inicialmente la página removeInlineShorts(); // Configurar un MutationObserver para observar cambios en el DOM const observer = new MutationObserver(function (mutationsList, observer) { for (const mutation of mutationsList) { if (mutation.type === 'childList' && mutation.addedNodes.length > 0) { for (const node of mutation.addedNodes) { if (node.nodeType === Node.ELEMENT_NODE) { // Caso 1: El nodo añadido es directamente un short. if (node.matches(SHORTS_SELECTOR)) { removeParentOfShort(node); } else { // Caso 2: El nodo añadido es un contenedor que podría tener shorts dentro. // Buscamos shorts solo si el nodo en sí no es un short (manejado arriba). const shortsInsideNode = node.querySelectorAll(SHORTS_SELECTOR); shortsInsideNode.forEach(removeParentOfShort); } } } } } }); // Empezar a observar el documentElement para elementos hijos añadidos y modificaciones en el subárbol observer.observe(document.documentElement, { childList: true, subtree: true }); })();