Für die, die es nicht wissen, angemeldete user von Mediawiki-Wikis können sich eine js-Datei erstellen, die dann auf jeder Seite ausgeführt wird. Ich habe es versucht, als ich dann allerdings eine Funktion hinzufügen wollte und irgendwo einen Fehler gemacht habe, funktionierte auf einmal (wie das bei JS so ist) nix mehr. Könnte wohl jemand drübergucken? Ist bestimmt ein ganz doofer Syntaxfehler.
Code
var loc=document.location.href;
/*wenn search-plugin benutzt wurde, um zum Wiki zu kommen*/
/* leite zur Beobachtungsliste weiter*/
if (loc=="http://***.de/Spezial:Suche")
{
document.location.href="http://***.de/Spezial:Beobachtungsliste";
}
function replaceRecentChanges(){
/*schreibe link "Letzte Änderungen" in der Sidebar so um, dass ich standardmäßig ausgeblendet bin*/
document.getElementById('n-recentchanges').childNodes[0].setAttribute("href","/index.php?title=Spezial:Letzte_Änderungen&hidemyself=1");
}
function addWhosOnline(){
/*ergänze Link zu Special:Whosonline in der Sidebar*/
//erschaffe Listeneintrag newLi
var newLi = document.createElement("li");
newLi.setAttribute("id", "t-whosonline");
//erschaffe Link newA
var newA = document.createElement("a");
newA.setAttribute("title", "Wer ist online");
newA.setAttribute("href", "/Special:Whosonline");
newA.appendChild(document.createTextNode("Wer ist online"));
newLi.appendChild(newA);
document.getElementById('t-specialpages').parentNode.appendChild(newLi);
}
function cleanUp(){
/*entferne |.| in den Letzten Änderungen (siehe MediaWiki:Rcshowhideanons)*/
//wenn ich tatsächlich auf den Recentchanges bin
if ((loc.indexOf("Spezial:Letzte_") || loc.indexOf("Special:Recentchanges") || loc.indexOf("Spezial:Beobachtungsliste"))
{
void(document.getElementsByClassName('rcoptions')[0].innerHTML=document.getElementsByClassName('rcoptions')[0].innerHTML.replace(/\| \. \|/,"|"));
}
}
function extendButtons(){
//erschaffe Link newB
var newB = document.createElement("a");
newB.setAttribute("href", "#");
newB.setAttribute("onclick", "insertTags('{'+'{Löschen|','}}\n','');return false;");
newB.appendChild(document.createTextNode("Löschantrag"));
document.getElementById('editpage-copywarn').childNodes[1].childNodes[1].appendChild(newB);
}
window.runOnloadHook=function()
{
replaceRecentChanges();
addWhosOnline();
cleanUp();
extendButtons();
}
Alles anzeigen
Zur Erklärung, die Datei wird im head-Bereich eingebunden und somit ausgeführt. window.runOnloadHook ist dann eine Funktion, die nach komplettem Laden des Dokuments ausgeführt wird.