F-List Profile Stripper

Adds a button to strip most formatting information from an F-List profile description.

  1. // ==UserScript==
  2. // @name F-List Profile Stripper
  3. // @namespace tag:cumgolem@gmail.com,2018-02-25:F-ListProfileStripper
  4. // @version 1.0
  5. // @description Adds a button to strip most formatting information from an F-List profile description.
  6. // @author Cummy
  7. // @match https://www.f-list.net/c/*
  8. // @grant none
  9. // ==/UserScript==
  10. (function () {
  11. 'use strict';
  12.  
  13. var profileDescription = document.getElementsByClassName("FormattedBlock")[0];
  14. var savedInnerHTML = profileDescription.innerHTML;
  15.  
  16. var button = document.createElement('button');
  17. button.innerHTML = 'Strip formatting';
  18. button.onclick = function() {
  19. var images = document.getElementsByClassName("FormattedBlock")[0].getElementsByTagName("img");
  20. while (images.length > 0) { images[0].parentNode.removeChild(images[0]); }
  21.  
  22. var childElements = document.getElementsByClassName("FormattedBlock")[0].getElementsByTagName("*");
  23. for (var i = 0; i < childElements.length; i++) { childElements[i].className = ''; childElements[i].style = ''; }
  24.  
  25. button.replaceWith(restoreButton);
  26. };
  27.  
  28. var restoreButton = document.createElement('button');
  29. restoreButton.innerHTML = 'Restore formatting';
  30. restoreButton.onclick = function() {
  31. profileDescription.innerHTML = savedInnerHTML;
  32. restoreButton.replaceWith(button);
  33. };
  34.  
  35. profileDescription.parentNode.insertBefore(button, profileDescription);
  36. })();