Benutzer:Col. o'neill/common.js: Unterschied zwischen den Versionen
aus Stargate Wiki, dem deutschsprachigen Stargate-Lexikon
Weitere Optionen
Keine Bearbeitungszusammenfassung |
Keine Bearbeitungszusammenfassung |
||
| Zeile 81: | Zeile 81: | ||
* +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Tests +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ | * +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Tests +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ | ||
**/ | **/ | ||
//Redirects in den Wiki-Suchvorschlägen hervorheben | |||
var observer=null; | |||
var results={}; | |||
var curobj={}; | |||
var titles=""; | |||
$('#searchInput').focus(function(){ | |||
if(observer===null){ | |||
observer=new MutationObserver(function(mutations) { | |||
$('div.suggestions .suggestions-results .mw-searchSuggest-link').each(function(){ | |||
if(results[$(this).attr('title')]===undefined) titles+="|"+$(this).attr('title'); | |||
}); | |||
if(titles.length){ | |||
$.get(wgServer+wgScriptPath+'/api.php?action=query&titles='+titles.substring(1)+'&format=json&prop=info', function(d){ | |||
if ('string' == typeof d) d = JSON.parse(d); | |||
for(var i=0; i<Object.keys(d.query.pages).length; i++){ | |||
curobj=d.query.pages[Object.keys(d.query.pages)[i]]; | |||
results[curobj.title]=(curobj.redirect!==undefined); | |||
} | |||
}, 'json'); | |||
titles=""; | |||
} | |||
$('div.suggestions .suggestions-results .mw-searchSuggest-link').each(function(){ | |||
if(results[$(this).attr('title')]) $(this).children().css('background-color','#f4a7a7'); //TOFIX: erst bei nächsten Feuern des Events sichtbar - am Anfang der callback kur warten? | |||
}); | |||
}); | |||
} | |||
observer.observe(document.querySelector("div.suggestions .suggestions-results"),{childList: true}); | |||
}); | |||
$('#searchinput').blur(function(){ | |||
if(observer!==null) observer.disconnect(); | |||
}); | |||