MediaWiki:Gadget-MarkRedirects.js
aus Stargate Wiki, dem deutschsprachigen Stargate-Lexikon
Hinweis: Leere nach dem Speichern 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: Strg+F5 drücken oder Strg drücken und gleichzeitig Aktualisieren anklicken
- Opera: Extras → Internetspuren löschen … → Individuelle Auswahl → Den kompletten Cache löschen
//Redirects in den Wiki-Suchvorschlägen hervorheben var MarkRedirects = { observer: undefined, results: {}, //lagert bereits geprüfte Seitennamen mit einem boolean für redirect ja/nein, um Zeit und Traffic fürs erneute Prüfen via API zu sparen curobj: {}, //temporäres Objekt mit den API-Infos für die aktuell bearbeitete Seite titles: "", //sammelt alle via API zu prüfenden Seitentitel, um nicht für jeden Titel einzelne Abfragen machen zu müssen init: function(){ if(MarkRedirects.observer===undefined){ MarkRedirects.observer=new MutationObserver(function(mutations) { $('div.suggestions .suggestions-results .mw-searchSuggest-link').each(function(){ if(MarkRedirects.results[$(this).attr('title')]===undefined) MarkRedirects.titles+="|"+$(this).attr('title'); }); if(MarkRedirects.titles.length){ $.ajax({ async: true, url: wgServer+wgScriptPath+'/api.php?action=query&titles='+MarkRedirects.titles.substring(1)+'&format=json&prop=info', success: function(d){ if ('string' == typeof d) d = JSON.parse(d); for(var i=0; i<Object.keys(d.query.pages).length; i++){ MarkRedirects.curobj=d.query.pages[Object.keys(d.query.pages)[i]]; //unschön aber wahrt Kompatibilität mit alten Browsern MarkRedirects.results[MarkRedirects.curobj.title]=(MarkRedirects.curobj.redirect!==undefined); } MarkRedirects.render(); }, dataType: 'json' }); MarkRedirects.titles=""; }else{ MarkRedirects.render(); } }); } MarkRedirects.observer.observe(document.querySelector("div.suggestions .suggestions-results"),{childList: true}); }, render: function(){ $('div.suggestions .suggestions-results .mw-searchSuggest-link').each(function(){ if(MarkRedirects.results[$(this).attr('title')]) $(this).children().css('background-color','#f4a7a7'); }); }, stop: function(){ if(MarkRedirects.observer!==undefined) MarkRedirects.observer.disconnect(); } }; $('#searchInput').focus(MarkRedirects.init); $('#searchinput').blur(MarkRedirects.stop);