Advertisement
zetlnd

Untitled

Mar 17th, 2025
30
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.65 KB | None | 0 0
  1. // ==UserScript==
  2. // @name Click All Expand Comments on Boosty To
  3. // @include https://boosty.to/*
  4. // @grant none
  5. // @version 1.1
  6. // @description 13.05.2023, 20:34:00
  7. // ==/UserScript==
  8.  
  9. (function() {
  10. 'use strict';
  11.  
  12. function expandComments() {
  13. // Поиск кнопок на основе устойчивых частей имени класса
  14. let showMoreButtons = this.querySelectorAll('[class^="ShowMore_showMore_"], [class^="Comment_readMore_"], [class^="Comment_repliesButton_"], [class^="Post_readMore_"]');
  15. for (let i = 0; i < showMoreButtons.length; i++) {
  16. let button = showMoreButtons[i];
  17. if (button.style.display !== 'none') {
  18. button.click();
  19. }
  20. }
  21. }
  22.  
  23. let feedItemWraps = document.querySelectorAll('[class^="Feed_itemWrap_"]');
  24.  
  25. // Функция, которая будет вызываться при добавлении новых элементов
  26. let observerCallback = function(mutationsList, observer) {
  27. for(let mutation of mutationsList) {
  28. if (mutation.type === 'childList') {
  29. // Пройдемся по всем добавленным элементам
  30. for (let i = 0; i < mutation.addedNodes.length; i++) {
  31. let addedNode = mutation.addedNodes[i];
  32. // Если добавленный элемент имеет класс, начинающийся с Feed_itemWrap_, добавляем ему прослушиватель событий
  33. if (addedNode.nodeType === Node.ELEMENT_NODE && addedNode.className.includes('Feed_itemWrap_')) {
  34. addedNode.addEventListener('click', expandComments);
  35. }
  36. }
  37. }
  38. }
  39. };
  40.  
  41. // Создаем экземпляр MutationObserver
  42. let observer = new MutationObserver(observerCallback);
  43.  
  44. // Настраиваем MutationObserver на отслеживание добавления новых элементов
  45. let observerConfig = {
  46. childList: true,
  47. subtree: true
  48. };
  49.  
  50. // Запускаем MutationObserver для отслеживания изменений в DOM-дереве
  51. observer.observe(document.body, observerConfig);
  52.  
  53. // Добавляем прослушиватель событий для всех элементов, найденных в начале
  54. for (let i = 0; i < feedItemWraps.length; i++) {
  55. let feedItemWrap = feedItemWraps[i];
  56. feedItemWrap.addEventListener('click', expandComments);
  57. }
  58. })();
  59.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement