Proxer-Userscript-Anker

Dieses Script fügt der Proxer-Navigation den Reiter "Tools" hinzu, an den Userscripte angedockt werden können

目前为 2015-10-10 提交的版本。查看 最新版本

此脚本不应直接安装,它是一个供其他脚本使用的外部库。如果您需要使用该库,请在脚本元属性加入:// @require https://update.cn-greasyfork.org/scripts/10320/79446/Proxer-Userscript-Anker.js

  1. // ==UserScript==
  2. // @name Proxer-Userscript-Anker
  3. // @namespace de.34749.proxer
  4. // @version 0.2
  5. // @description Dieses Script fügt der Proxer-Navigation den Reiter "Tools" hinzu, an den Userscripte angedockt werden können
  6. // @author Blue.Reaper
  7. // ==/UserScript==
  8.  
  9. //Starte die Funktion "addAnker" beim Laden der Seite
  10. document.addEventListener('DOMContentLoaded', function(event) {
  11. addAnker();
  12. });
  13.  
  14. //Fügt den Button "Tools" zu "leftNav" hinzu
  15. var addAnker = function() {
  16. var ul = document.getElementById("leftNav");
  17. var li = document.createElement("li");
  18. li.setAttribute("id","ankerTop");
  19. li.setAttribute("class","topmenu");
  20. ul.appendChild(li);
  21. document.getElementById('ankerTop').innerHTML = '<a href="javascript:;">Tools ▾</a><ul id="anker"></ul>';
  22. };
  23.  
  24. //############################# Ab hier generische Klassen nicht ändern #############################
  25.  
  26. /* Fügt den Button zu "Anker" hinzu und startet die changefunktion beim Seitenaufruf
  27. 1.Parameter --> id des Members in der Menüleiste
  28. 2.Parameter --> Angezeigter Text des Members
  29. 3.Parameter --> Boolean: true -> mit Häckhen/Kreuz | false -> ohne Häckhen/Kreuz
  30. 4.Parameter --> Methode die bei Initialisierung und Änderung der Speichervariable aufgerufen wird (An/Aus)
  31. 5.Parameter --> Name der Speichervariable
  32. 6.Parameter --> Initalwert der Speichervariable
  33. */
  34. function addAnkerMember(id, name, withTick, changefunktion, memoryName, memoryDefault) {
  35. var test = setInterval(function () {
  36. if (document.getElementById('anker') !== null) {
  37. var ul = document.getElementById("anker");
  38. var li = document.createElement("li");
  39. li.setAttribute("id",id);
  40. ul.appendChild(li);
  41. if(withTick){
  42. document.getElementById(id).innerHTML = '<a href="javascript:;">'+name+' <img id="'+id+'_img" src="" width="15" height="15"></a>';
  43. updateTick(id, memoryName, memoryDefault);
  44. }else{
  45. document.getElementById(id).innerHTML = '<a href="javascript:;">'+name+'</a>';
  46. }
  47. document.getElementById(id).addEventListener("click",function () {
  48. switchMemory(id, memoryName, memoryDefault, changefunktion);
  49. });
  50. changefunktion(false);
  51. clearInterval(test);
  52. };
  53. },100);
  54. };
  55.  
  56. // Troogelt den Speicherwert (0/1) und ruft die changefunktion auf
  57. function switchMemory(id, memoryName, memoryDefault, changefunktion) {
  58. if (GM_getValue(memoryName, memoryDefault) === 0) {
  59. GM_setValue(memoryName,1);
  60. } else {
  61. GM_setValue(memoryName,0);
  62. }
  63. changefunktion(true);
  64. updateTick(id, memoryName, memoryDefault);
  65. };
  66.  
  67. // Setzt den Hacken / Kreuz nach das Member
  68. function updateTick(id, memoryName, memoryDefault) {
  69. if (GM_getValue(memoryName, memoryDefault) === 0) {
  70. document.getElementById(id+'_img').src="https://proxer.me/images/misc/kreuz.png";
  71. } else {
  72. document.getElementById(id+'_img').src="https://proxer.me/images/misc/haken.png";
  73. }
  74. }