Live Advanced Style Settings on userstyles.org

Update "Show CSS Code" box when there are Advanced Style Settings (2017-11-11)

  1. // ==UserScript==
  2. // @name Live Advanced Style Settings on userstyles.org
  3. // @author Jefferson "jscher2000" Scher
  4. // @namespace JeffersonScher
  5. // @description Update "Show CSS Code" box when there are Advanced Style Settings (2017-11-11)
  6. // @include https://userstyles.org/styles/*
  7. // @version 0.6
  8. // @copyright Copyright 2017 Jefferson Scher
  9. // @license BSD 3-clause
  10. // @grant none
  11. // ==/UserScript==
  12.  
  13. function updatestuff(e){
  14. if (e) console.log('Event target='+e.target.nodeName);
  15. var ctrls = document.querySelectorAll('#style-settings input[type="text"], #style-settings select');
  16. var namevalue = new Array();
  17. for(var i=0; i<ctrls.length; i++){
  18. switch (ctrls[i].nodeName) {
  19. case "INPUT":
  20. // Does not work for color choosers, maybe because the value of the text input is changed by a script
  21. if (ctrls[i].type == "text") {
  22. namevalue.push(ctrls[i].name + "=" + encodeURIComponent(ctrls[i].value));
  23. }
  24. break;
  25. case "SELECT":
  26. namevalue.push(ctrls[i].name + "=" + encodeURIComponent(ctrls[i].value));
  27. break;
  28. }
  29. }
  30. var request = new XMLHttpRequest();
  31. if (request){
  32. var sPage = document.querySelector("meta[property='og:url']").getAttribute("content");
  33. if (!sPage || sPage.length === 0) sPage = 'https://userstyles.org' + location.pathname;
  34. var styloc = sPage.substr(0, sPage.lastIndexOf("/")) + ".css?" + namevalue.join("&");
  35. request.open("GET", styloc, true);
  36. request.onreadystatechange = function() {
  37. if (request.readyState==4) {
  38. var tgtEl = document.getElementById("stylish-code");
  39. tgtEl.className = "cssVisible";
  40. if (request.status==200) {
  41. tgtEl.value = request.responseText;
  42. } else {
  43. tgtEl.value += "Unexpected Response Status: " + request.status + " " + request.statusText;
  44. }
  45. request = null;
  46. }
  47. }
  48. request.send(null);
  49. } else {
  50. console.log("Can't create XMLHttpRequest!");
  51. }
  52. }
  53. function prepIt(){
  54. if (document.getElementById('style-settings')){
  55. document.getElementById('advancedsettings_area').className = 'advancedsettings_shown';
  56. updatestuff();
  57. document.getElementById('advancedsettings_area').addEventListener('change', updatestuff, false);
  58. }
  59. }
  60. window.setTimeout(prepIt, 1000);
  61. window.setTimeout(prepIt, 2000); // in case there is a very slow load...

QingJ © 2025

镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址