Benutzer:Guillaumito/monobook.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
//<pre><nowiki>
// Choice of multiple search engines
// Autor: Jakob Voss, Guillaume
// Version: 0.3.8
// Published as Public Domain

// Map of search engines and some OpenSearch-based fields
var searchEngines = {
  mediawiki: {
    ShortName: "Interne Suche",
    Template: "/w/index.php?search={searchTerms}"
  },
  globalwpsearch: {
    ShortName: "Global WP",
    Template: "http://vs.aka-online.de/cgi-bin/globalwpsearch.pl?timeout=120&search={searchTerms}"
  },
  google: {
    ShortName: "Google",
    Template: "http://www.google.com/search?as_sitesearch=de.wikipedia.org&hl={language}&q={searchTerms}"
  },
  wikiwix: {
    ShortName: "Wikiwix",
    Template: "http://de.wikiwix.com/index.php?action={searchTerms}&lang={language}"
  },
  webde: {
    ShortName: "Web.de",
    Template: "http://wiki.suche.web.de/wiki/?su={searchTerms}&wmc=suche@home.suche@wiki"
  },
  yahoo: {
    ShortName: "Yahoo!",
    Template: "http://de.search.yahoo.com/search?p={searchTerms}&vs=de.wikipedia.org"
  },
  wlive: {
    ShortName: "Windows Live",
    Template: "http://search.live.com/results.aspx?q={searchTerms}&q1=site:http://de.wikipedia.org"
  }
};

function changeSearchEngine(selectedId, searchTerms) {
  var currentId = document.getElementById("searchengineChoices").currentChoice;
  if (selectedId == currentId) return;
 
  // select
  document.getElementById("searchengineChoices").currentChoice = selectedId;
  var radio = document.getElementById('searchengineRadio-'  + selectedId);
  radio.checked = "checked";

  var engine = searchEngines[selectedId];
  var p = engine.Template.indexOf('?');
  var params = engine.Template.substr(p+1);

  var form;
  if (document.forms["search"]) {
    form = document.forms["search"];
  } else {
    form = document.getElementById("powersearch");
  }
  form.setAttribute("action", engine.Template.substr(0,p));

  var l = ("" + params).split("&");
  for (var i in l) {
    var p = l[i].split("=");
    var pValue = p[1];

    if (pValue == "{language}") {
    } else if (pValue == "{searchTerms}") {
      var input;
      if (document.forms["search"]) {
        input = document.getElementById("searchText");
      } else {
        input = document.getElementById("powerSearchText");
      } 

      input.name = p[0];
    } else {
      var input = document.getElementById("searchengineextraparam");

      input.name = p[0];
      input.value = pValue;
    }
  }
}

function externalSearchEngines() {
  if (typeof SpecialSearchEnhanced2Disabled != 'undefined') return;
  if (wgPageName != "Spezial:Suche") return;

  var mainNode;
  if (document.forms["search"]) { 
    mainNode = document.forms["search"];
  } else {
    mainNode = document.getElementById("powersearch");
    if (!mainNode) return;
    var mainNode = mainNode.lastChild;
    if (!mainNode) return;

    while(mainNode.nodeType == 3) {
      mainNode = mainNode.previousSibling;
    }
  }

  // selected search engine
  var firstEngine = "mediawiki";
 
  var choices = document.createElement("div");
  choices.setAttribute("id","searchengineChoices");
  choices.style.textAlign = "center";

  // get current search value and remove existing search form
  var lsearchbox = document.getElementById("powerSearchText");
  var initValue = lsearchbox.value;
 
  // create search forms and choice
  var space = "";
  for (var id in searchEngines) {
    var engine = searchEngines[id];
 
    if (space) choices.appendChild(space);
    space = document.createTextNode(" ");
 
    var attr = { 
      type: "radio", 
      name: "searchengineselect",
      value: id,
      onClick: "changeSearchEngine(this.value)",
      id: "searchengineRadio-"+id
    };
 
    var html = "<input";
    for (var a in attr) html += " " + a + "='" + attr[a] + "'";
    html += " />";
    var span = document.createElement("span");
    span.innerHTML = html;
 
    choices.appendChild( span );
    var label = document.createElement("label");
    label.htmlFor = "searchengineRadio-"+id;
    label.appendChild( document.createTextNode( engine.ShortName ) );
    choices.appendChild( label );
  }
 
  mainNode.appendChild(choices);

  var input = document.createElement("input");
  input.id = "searchengineextraparam";
  input.type = "hidden";

  mainNode.appendChild(input);

  changeSearchEngine(firstEngine, initValue);
}

addOnloadHook(externalSearchEngines);