es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿Es posible ocultar elementos de Youtube Shorts con un bookmarklet?

Hay un filtro de uBlock flotando por ahí que oculta todas las miniaturas de video si la duración del texto asociado es menor a 70 segundos:

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/))

Pero no quiero bloquear todo mientras se carga. Solo me gustaría poder ocultar los elementos después de cargar la página de vista general de un usuario. He buscado en stackoverflow y encontré este bookmarklet que oculta imágenes usando getElementsByTagName:

https://stackoverflow.com/questions/3623640/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";}());

perdí algunos cabellos tratando de adaptar este bookmarklet para que coincida con el selector css escrito anteriormente con getelementsbyclassname. simplemente no funcionó. el elemento de texto <span> (span.ytd-thumbnail-overlay-time-status-renderer:has-text) debería ser menor a 70 segundos y el elemento padre ytd-grid-video-renderer debería ser eliminado.
¿por qué no puedo hacer que esto funcione? ="" perdí="" algunos="" cabellos="" tratando="" de="" adaptar="" este="" bookmarklet="" para="" que="" coincida="" con="" el="" selector="" css="" escrito="" anteriormente="" con="" getelementsbyclassname.="" simplemente="" no="" funcionó.="" el="" elemento="" de="" texto="" &lt;span&gt;="" (span.ytd-thumbnail-overlay-time-status-renderer:has-text)="" debería="" ser="" menor="" a="" 70="" segundos="" y="" el="" elemento="" padre="" ytd-grid-video-renderer="" debería="" ser="" eliminado.="" ¿por="" qué="" no="" puedo="" hacer="" que="" esto=""></imgs.length;i++)imgs[i].style.visibility="hidden";}());

perdí algunos cabellos tratando de adaptar este bookmarklet para que coincida con el selector css escrito anteriormente con getelementsbyclassname. simplemente no funcionó. el elemento de texto <span> (span.ytd-thumbnail-overlay-time-status-renderer:has-text) debería ser menor a 70 segundos y el elemento padre ytd-grid-video-renderer debería ser eliminado.
¿por qué no puedo hacer que esto funcione?>

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Como experto en IT especializado en javascript, css y YouTube, puede haber varias razones por las cuales estás teniendo problemas para adaptar el bookmarklet y hacer coincidir el selector CSS que se muestra arriba.

    En primer lugar, el bookmarklet que encontraste solo oculta imágenes, mientras que estás intentando eliminar elementos padres basados en ciertos criterios. Esto requiere un enfoque diferente al simplemente ocultar todos los elementos de una etiqueta determinada.

    En segundo lugar, el selector CSS que has proporcionado es bastante específico y complejo, involucrando elementos anidados e incluso una expresión regular. Esto significa que puede que no sea tan simple como usar getElementsByClassName. Es posible que necesites usar querySelectorAll en su lugar y escribir un selector más complejo.

    Finalmente, es posible que haya un problema con el selector CSS en sí. Siempre es una buena idea probar los selectores en la consola de desarrolladores antes de intentar incorporarlos en tu código.

    Sin ver tu código específico y los problemas que estás encontrando, es difícil dar consejos más específicos. Sin embargo, algunos consejos generales para solucionar problemas y adaptar código incluyen:

    • Dividir el problema en pasos más pequeños y probar cada uno por separado
    • Verificar los registros de la consola en busca de errores o comportamiento inesperado
    • Probar enfoques diferentes o variaciones en el código, como usar un selector diferente o usar remove() en lugar de style.visibility
    • Pedir ayuda y consejo a otros desarrolladores, como en Stack Overflow u otros foros.

Comments are closed.