Youtube Collapse Sidebar

collapse youtube sidebar

目前为 2023-05-31 提交的版本。查看 最新版本

  1. // ==UserScript==
  2. // @name Youtube Collapse Sidebar
  3. // @version 0.2
  4. // @description collapse youtube sidebar
  5. // @author hdyzen
  6. // @match https://www.youtube.com/
  7. // @match https://www.youtube.com/@*
  8. // @icon https://i.ibb.co/VxF8nPm/8212733.png
  9. // @grant none
  10. // @license MIT
  11. // @namespace https://greasyfork.org/users/821661
  12. // ==/UserScript==
  13. (function() {
  14. "use strict";
  15.  
  16. // Função para clicar no elemento alvo
  17. function clickGuideButton() {
  18. const guideButton = document.querySelector('#guide-button');
  19. if (guideButton) {
  20. guideButton.click();
  21. }
  22. }
  23.  
  24. // Função para executar o código após o atraso de 5 segundos
  25. function executeAfterDelay() {
  26. // Selecionar o elemento alvo pelo ID
  27. const targetElement = document.getElementById('guide-button');
  28.  
  29. // Criar uma função de callback para ser chamada quando o elemento alvo for modificado
  30. const callback = function(mutationsList, observer) {
  31. // Verificar se o elemento alvo está presente no DOM
  32. if (document.contains(targetElement)) {
  33. clickGuideButton();
  34. observer.disconnect(); // Parar de observar as mudanças após o clique
  35. }
  36. };
  37.  
  38. // Criar uma instância do Mutation Observer com a função de callback
  39. const observer = new MutationObserver(callback);
  40.  
  41. // Configurar as opções do Mutation Observer
  42. const config = {
  43. childList: true,
  44. subtree: true
  45. };
  46.  
  47. // Iniciar a observação do elemento alvo com as opções configuradas
  48. observer.observe(document, config);
  49.  
  50. // A partir deste ponto, o Mutation Observer estará ativo e chamará a função de callback quando houver alterações no DOM. Quando o elemento alvo for detectado, a função `clickGuideButton` será chamada. Em seguida, o observador será desconectado para interromper a observação.
  51. }
  52.  
  53. // Adicionar atraso de 5 segundos usando setTimeout antes de executar o código
  54. setTimeout(executeAfterDelay, 2000); // Delay de 5 segundos (5000 milissegundos)
  55.  
  56. })();