NNM-Club Open Spoilers

Создаёт кнопку над первым спойлером, при нажатии на которую открываются все спойлеры на странице NNM-Club. Можно (не проверял, но по логике должно) переделать для другого сайта. Для этого нужно вместо (или добавить через запятую) CSS-класса .spoiler-wrap вставить селектор спойлера с нужного сайта. Добавлено для USBTor.Ru Новое в 0.4: Исключены от открытия скриптом спойлеры - "Список файлов в торренте" и "Похожие темы"

  1. // ==UserScript==
  2. // @name NNM-Club Open Spoilers
  3. // @description Создаёт кнопку над первым спойлером, при нажатии на которую открываются все спойлеры на странице NNM-Club. Можно (не проверял, но по логике должно) переделать для другого сайта. Для этого нужно вместо (или добавить через запятую) CSS-класса .spoiler-wrap вставить селектор спойлера с нужного сайта. Добавлено для USBTor.Ru Новое в 0.4: Исключены от открытия скриптом спойлеры - "Список файлов в торренте" и "Похожие темы"
  4. // @license MIT
  5. // @icon http://nnmclub.to/favicon.ico
  6. // @namespace http://tampermonkey.net/
  7. // @version 0.4
  8. // @author Nexus с сайта JavaScript.Ru
  9. // @match *://*/*
  10. // @grant none
  11. // ==/UserScript==
  12.  
  13. (function () {
  14. var spoilers = [].slice.call(document.querySelectorAll('div.postbody .spoiler-wrap,.sp-wrap,.sp-head'));
  15. if (!spoilers.length) {
  16. return;
  17. }
  18. var btn = document.createElement('button');
  19. btn.type = 'button';
  20. btn.innerHTML = 'Открыть все спойлеры';
  21. btn.addEventListener('click', function () {
  22. spoilers.forEach(function (node) {
  23. if(node.parentNode.classList.contains('center')) return;
  24. node.querySelector('.clickable').dispatchEvent(new Event('click'));
  25. });
  26. });
  27. spoilers[0].insertAdjacentHTML('beforebegin', '<br>');
  28. spoilers[0].insertAdjacentHTML('beforebegin', '&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp');
  29. spoilers[0].parentNode.insertBefore(btn, spoilers[0]);
  30. })();