Benutzer:Ce2/JavaScript/showusers.js

aus Wikipedia, der freien Enzyklopädie
Zur Navigation springen Zur Suche springen

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
/********************************/
/* Wahre Benutzernamen anzeigen */
/********************************/

// Fügt Benutzernamen in Links auf Benutzerseiten ein
//
// Einbinden mit includeJS aus meiner standard.js:
// includeJS('[[Benutzer:Ce2/JavaScript/showusers.js]]');
//
// Beim Einbinden mittels anderer Methoden bitte obigen Wikilink
// explizit angeben (z.B. in einem Kommentar)

/* Hilfsfunktion: Dekodieren von UTF8 */

function decode_utf8(text)
{
  decoded = '';
  var tail = 0;
  var codepoint;
  for (var i = 0; i < text.length; ++i)
  {
    var charcode = text.charCodeAt(i);
    if (tail != 0)
    {
      codepoint = (codepoint << 6) + (charcode & 0x3f);
      --tail;
      if (tail == 0)
        decoded += String.fromCharCode(codepoint);
    }
    else
    {
      if (charcode < 0x80)
        decoded += String.fromCharCode(charcode);
      else
      {
        var tail = 1; // number of following 10xxxxxx values
        while ((charcode & (0x40 >> tail)) != 0)
          ++tail;
        codepoint = charcode & ((0x80 >> tail) - 1)
      }
    }
  }
  return decoded
}

function showusers()
{
  /* Benutzernamen aus Hyperlink extrahieren */
  function getusername(a)
  {
    if (!a.href)
      return null;

    if (a.host != "de.wikipedia.org")
      return null;

    var parts = /\/Benutzer:([^\/]*)(#.*)?$/.exec(a.href)
    if (!parts)
      return null;

    return decode_utf8(unescape(parts[1])).replace(/_/g,' ');
  }

  var links = document.links
  for (i = 0; i < links.length; ++i)
  {
    var username =getusername(links[i]);
    var text = links[i].text
    text = text.substr(0,1).toUpperCase()+text.substr(1)
      
    if (username && username != text && "Benutzer:"+username != text)
    {
      var newtext = document.createTextNode(" (" + username + ")")
      var span = document.createElement("span")
      span.setAttribute("class", "loginname")
      span.appendChild(newtext)
      links[i].appendChild(span)
    }
  }
}

$(showusers)