Utilisateur:Dr Brains/VectorSearchDeluxe.js
Note : après avoir enregistré la page, vous devrez forcer le rechargement complet du cache de votre navigateur pour voir les changements.
Mozilla / Firefox / Konqueror / Safari : maintenez la touche Majuscule (Shift) en cliquant sur le bouton Actualiser (Reload) ou pressez Maj-Ctrl-R (Cmd-R sur Apple Mac) ;
Chrome / Internet Explorer / Opera : maintenez la touche Ctrl en cliquant sur le bouton Actualiser ou pressez Ctrl-F5.$( VectorSearchDeluxe );
function VectorSearchDeluxe(){
var SearchDiv = document.getElementById('simpleSearch');
if(!SearchDiv) return;
var Select = document.createElement('select');
Select.id = "searchNSSelector";
for(var NS in mw.config.get( 'wgFormattedNamespaces' )){
var ThisNamespace = mw.config.get( 'wgFormattedNamespaces' )[NS];
var Option = document.createElement('option');
Option.value = ThisNamespace;
Option.innerHTML = ThisNamespace;
Option.onclick = function(){
var SearchInput = document.getElementById('searchInput');
if(!SearchInput) return;
SearchInput.focus();
SearchInput.value = this.value + (this.value=="" ? "" : ":");
}
Select.appendChild(Option);
}
Select.onkeyup = function(e){
if(!e) e = window.event;
if (e.keyCode != 13) return;
var SearchInput = document.getElementById('searchInput');
if(!SearchInput) return;
var Options = this.getElementsByTagName('option');
for(var a=0;a<Options.length;a++){
if(!Options[a].selected) continue;
SearchInput.focus();
SearchInput.value = Options[a].value + (Options[a].value=="" ? "" : ":");
}
};
SearchDiv.appendChild(Select);
VectorSearchDeluxeGetStyles(Select, SearchDiv, "block");
}
function VectorSearchDeluxeGetStyles(Select, SearchDiv, Display){
Select.style.display = Display;
Select.style.position = "absolute";
Select.style.zIndex = 1000;
Select.style.top = parseInt(parseInt(SearchDiv.innerTop) + parseInt(SearchDiv.innerHeight)) + "px";
Select.style.left = parseInt(SearchDiv.innerLeft) + "px";
}