您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Dieses Script fügt der Proxer-Navigation den Reiter "Tools" hinzu, an den Userscripte angedockt werden können
此脚本不应直接安装。它是供其他脚本使用的外部库,要使用该库请加入元指令 // @require https://update.cn-greasyfork.org/scripts/10320/79622/Proxer-Userscript-Anker.js
// ==UserScript== // @name Proxer-Userscript-Anker // @namespace de.34749.proxer // @version 0.2.1 // @description Dieses Script fügt der Proxer-Navigation den Reiter "Tools" hinzu, an den Userscripte angedockt werden können // @author Blue.Reaper // @history 0.2.1 alphabetische Sortierung, 'ankerTop' wird nur 1x erzeugt // ==/UserScript== //Starte die Funktion "addAnker" beim Laden der Seite document.addEventListener('DOMContentLoaded', function(event) { addAnker(); }); //Fügt den Button "Tools" zu "leftNav" hinzu var addAnker = function() { if (document.getElementById('ankerTop') === null) { var ul = document.getElementById("leftNav"); var li = document.createElement("li"); li.setAttribute("id","ankerTop"); li.setAttribute("class","topmenu"); ul.appendChild(li); document.getElementById('ankerTop').innerHTML = '<a href="javascript:;">Tools ▾</a><ul id="anker"></ul>'; } }; //############################# Ab hier generische Klassen nicht ändern ############################# /* Fügt den Button zu "Anker" hinzu und startet die changefunktion beim Seitenaufruf 1.Parameter --> id des Members in der Menüleiste 2.Parameter --> Angezeigter Text des Members 3.Parameter --> Boolean: true -> mit Häckhen/Kreuz | false -> ohne Häckhen/Kreuz 4.Parameter --> Methode die bei Initialisierung und Änderung der Speichervariable aufgerufen wird (An/Aus) 5.Parameter --> Name der Speichervariable 6.Parameter --> Initalwert der Speichervariable */ function addAnkerMember(id, name, withTick, changefunktion, memoryName, memoryDefault) { var test = setInterval(function () { // console.log('anker'); if (document.getElementById('anker') !== null) { var ul = document.getElementById("anker"); var li = document.createElement("li"); li.setAttribute("id",id); // fügt das Member an der alphabetisch richtigen Stellein var i=0; // Wenn Zähler kleiner als Listenlänge und Name des Member größer (alphabetisch danach) als aktueller Listeneintrag, dann gehe weiter while(ul.childNodes.length > i && ul.childNodes[i].textContent < name){ // console.log('Schleife - '+name+' - '+ul.childNodes[i].textContent+' < '+name+' = '+(ul.childNodes[i].textContent < name)); i++; } // Setzt Member an richtige Stelle ul.insertBefore(li, ul.childNodes[i]); // Setzt den html-Inhalt des Members if(withTick){ document.getElementById(id).innerHTML = '<a href="javascript:;">'+name+' <img id="'+id+'_img" src="" width="15" height="15"></a>'; updateAnkerTick(id, memoryName, memoryDefault); }else{ document.getElementById(id).innerHTML = '<a href="javascript:;">'+name+'</a>'; } document.getElementById(id).addEventListener("click",function () { switchAnkerMemory(id, memoryName, memoryDefault, changefunktion); }); changefunktion(false); clearInterval(test); } },100); }; // Troogelt den Speicherwert (0/1) und ruft die changefunktion auf function switchAnkerMemory(id, memoryName, memoryDefault, changefunktion) { if (GM_getValue(memoryName, memoryDefault) === 0) { GM_setValue(memoryName,1); } else { GM_setValue(memoryName,0); } changefunktion(true); updateAnkerTick(id, memoryName, memoryDefault); }; // Setzt den Hacken / Kreuz nach das Member function updateAnkerTick(id, memoryName, memoryDefault) { if (GM_getValue(memoryName, memoryDefault) === 0) { document.getElementById(id+'_img').src="https://proxer.me/images/misc/kreuz.png"; } else { document.getElementById(id+'_img').src="https://proxer.me/images/misc/haken.png"; } };