Benutzer:✓/monobook/weiterleitungen.js
aus Wikipedia, der freien Enzyklopädie
Hinweis: Leere nach dem Veröffentlichen den Browser-Cache, um die Änderungen sehen zu können.
- Firefox/Safari: Umschalttaste drücken und gleichzeitig Aktualisieren anklicken oder entweder Strg+F5 oder Strg+R (⌘+R auf dem Mac) drücken
- Google Chrome: Umschalttaste+Strg+R (⌘+Umschalttaste+R auf dem Mac) drücken
- Internet Explorer/Edge: Strg+F5 drücken oder Strg drücken und gleichzeitig Aktualisieren anklicken
- Opera: Strg+F5
function WL() {
// Konfiguration:
if ( typeof pfeil == "undefined") var pfeil = " → ";
if ( typeof titlebeibehalten == "undefined") var titlebeibehalten = true;
var inhalt = document.getElementById("bodyContent");
var redirects = getElementsByClassName(inhalt, "a", "mw-redirect");
var catredirects = getElementsByClassName(inhalt, "span", "redirect-in-category");
var apredirects = getElementsByClassName(inhalt, "div", "allpagesredirect");
var allredirects = [];
for(var i=0;i<redirects.length;i++)
allredirects.push(redirects[i]);
for(var i=0;i<catredirects.length;i++)
allredirects.push(catredirects[i].getElementsByTagName("a")[0]);
for(var i=0;i<apredirects.length;i++)
allredirects.push(apredirects[i].getElementsByTagName("a")[0]);
titlesAendern(allredirects);
function titlesAendern(reds) {
var ziele = [];
for (var x=0;x<reds.length;x++) {
var link = reds[x].getAttribute("href");
var start = link.indexOf("/wiki/") + 6; // normale wikilinks
//if (start == 5) start = 0;
var ende = link.indexOf("#", start);
if (link.indexOf("/w/index.php?") > -1) { // links mit php-parameter
start = link.indexOf("title=") + 6;
ende = link.indexOf("&", start);
}
if (ende == - 1) ende = link.length;
var ziel = link.substring(start, ende);
var schondrin = false;
for(i=0; i<ziele.length; i++) {
if(ziele[i] == ziel) {
schondrin = true;
break;
}
}
if (!schondrin) ziele.push(ziel);
}
query();
function query() {
var diesmal = [];
while(diesmal.length<50 && ziele.length>0)
diesmal.push(ziele.shift());
var url = wgServer + "/" + wgScriptPath + "/api.php?action=query&format=xml&titles=" + diesmal.join("|") + "&redirects";
if ( typeof wl_xmlhttp != "undefined" ) wl_xmlhttp.abort(); // Just to make sure...
var wl_xmlhttp = new sajax_init_object();
wl_xmlhttp.open('GET', url, true);
wl_xmlhttp.onreadystatechange = function () {
if (! wl_xmlhttp) return ;
if (wl_xmlhttp.readyState != 4) return;
var xml = wl_xmlhttp.responseXML;
if (! xml) return ;
var r = xml.getElementsByTagName("r");
for(var i=0;i<reds.length;i++) {
var node = reds[i];
var title = node.getAttribute("title");
var j = 0;
while(title != r[j].getAttribute("from")) {
j++;
if (j >= r.length) break;
}
if (j >= r.length) continue; // wurde nicht in xml gefunden
var anhang = r[j].getAttribute("to");
if (! anhang) continue;
var neuerTitle = pfeil + anhang;
if (titlebeibehalten) neuerTitle = title + pfeil + anhang;
node.setAttribute("title", neuerTitle);
}
if (ziele.length > 0) query(); //solange bis nichts mehr da ist
};
wl_xmlhttp.send(null);
}
}
}
$(WL);