Участник:Afinogenoff/searchlist.js
Перейти к навигации
Перейти к поиску
Замечание: Чтобы после сохранения вступили в силу изменения стилей, перезагрузите файл //traditio.wiki/w/load.php?debug=false&lang=ru&modules=site&only=styles&skin=vector&*, если используете скин Vector, или //traditio.wiki/w/load.php?debug=false&lang=ru&modules=site&only=styles&skin=common&*, если используете скин Common.
Чтобы вступили в силу изменения скриптов, перезагрузите файл //traditio.wiki/w/load.php?debug=false&lang=ru&modules=site&only=scripts&skin=vector&*, если используете скин Vector, или //traditio.wiki/w/load.php?debug=false&lang=ru&modules=site&only=scripts&skin=common&*, если используете скин Common.
Гаджеты и импортируемые скрипты загружаются отдельными файлами.
//Скрипт заменяет кнопку "Найти" на выпадающий список пространств, в которых вы часто ищете
// based on [[:en:User:Ilmari_Karonen/searchnsmenu.js]]
//var searchInNewWindow = true;
if (!window.searchInNewWindow) searchInNewWindow = false;
var searchNS = [
['','найти в…'],
[-5,'(в этом окне)'],
[-1,'По умолчанию'],
[0,'Статьи'],
[1,'Статьи (обс)'],
[2,'Участник'],
[3,'Участник (обс)'],
[4,'Traditio'],
[5,'Traditio (обс)'],
[6,'Изображение'],
[7,'Изобр. (обс)'],
[8,'Mediawiki'],
[9,'Mediawiki (обс)'],
[10,'Шаблон'],
[11,'Шаблон (обс)']
]
addOnloadHook(searchCreateMenu);
function searchCreateMenu() {
searchForm = document.getElementById('searchform') //global var
if (!searchForm) return;
//create hidden input
searchHidden = document.createElement('input'); //global var
searchHidden.type = 'hidden';
searchHidden.value = '1';
searchForm.fulltext.parentNode.appendChild(searchHidden);
//create select
searchSel = document.createElement('select'); //global var
for (var i in searchNS)
searchSel.options[searchSel.options.length] = new Option(searchNS[i][1], searchNS[i][0]);
searchSetTarget();
searchSel.style.margin = '0';
searchSel.style.marginTop = '2px';
searchSel.style.fontSize = '90%';
searchSel.onchange = searchOnSelect;
searchForm.fulltext.parentNode.insertBefore(searchSel, searchHidden);
//hide normal Search button if not IE
if (is_opera || is_gecko){
searchForm.fulltext.style.display = 'none';
searchSel.style.width = '65px';
}
}
function searchOnSelect() {
if (this.selectedIndex == 0) return;
var ns = this.options[this.selectedIndex].value;
if (ns == -5) { //new window switch
searchInNewWindow = !searchInNewWindow;
searchSetTarget();
} else { //do search
if (searchForm.search.value == '')
searchForm.search.value = '?';
else {
searchHidden.name = (ns == -1) ? '' : 'ns' + ns;
searchForm.fulltext.click();
}
}
this.selectedIndex = 0;
}
function searchSetTarget(){
if (searchInNewWindow) {
searchForm.target = '_blank';
searchSel.options[1].text = '(в НОВОМ окне)';
} else {
searchForm.target = '';
searchSel.options[1].text = '(в этом окне)';
}
}