مدیاویکی:Gadget-SearchEngines.js
نکته: پس از انتشار ممکن است برای دیدن تغییرات نیاز باشد که حافظهٔ نهانی مرورگر خود را پاک کنید.
- فایرفاکس / سافاری: کلید Shift را نگه دارید و روی دکمهٔ Reload کلیک کنید، یا کلیدهای Ctrl-F5 یا Ctrl-R را با هم فشار دهید (در رایانههای اپل مکینتاش کلیدهای ⌘-R)
- گوگل کروم: کلیدهای Ctrl+Shift+R را با هم فشار دهید (در رایانههای اپل مکینتاش کلیدهای ⌘-Shift-R)
- اینترنت اکسپلورر/ Edge: کلید Ctrl را نگهدارید و روی دکمهٔ Refresh کلیک کنید، یا کلیدهای Ctrl-F5 را با هم فشار دهید
- اپرا: Ctrl-F5 را بفشارید.
/** * افزودن موتورهای جستجو بهجستجو پیشرفته */ /*jshint curly:false */ /*global mw */ (function () { if (typeof SpecialSearchEnhanced2Disabled !== 'undefined') return; if (mw.config.get('wgCanonicalSpecialPageName') !== 'Search') return; var choices, searchEngines; searchEngines = { mediawiki: { ShortName: "جستجو در اینترنت", Template: mw.config.get('wgScript') + "?search={searchTerms}" }, google: { ShortName: "گوگل", Template: "http://www.google.com/search?as_sitesearch=baristas.ir&hl={language}&q={searchTerms}" }, wikiwix: { ShortName: "ویکیویکس", Template: "http://baristas.ir/index.php?action={searchTerms}&lang={language}" }, wlive: { ShortName: "بینگ", Template: "http://www.bing.com/search?q={searchTerms}&q1=site:http://fa.wikipedia.org" }, yahoo: { ShortName: "یاهو!", Template: "http://search.yahoo.com/search?p={searchTerms}&vs=baristas.ir" }, globalwpsearch: { ShortName: "ویکیکافه", Template: "http://bariats.ir/index.php=/ویژه:آمار{searchTerms}" } }; function changeSearchEngine(selectedId, searchTerms) { var currentId, radio, engine, p, params, form, l, idx, pValue, input; currentId = choices.currentChoice; if (selectedId == currentId) return; choices.currentChoice = selectedId; radio = document.getElementById('searchengineRadio-' + selectedId); radio.checked = true; engine = searchEngines[selectedId]; p = engine.Template.indexOf('?'); params = engine.Template.substr(p + 1); form = document.forms.search || document.getElementById("powersearch"); form.setAttribute("action", engine.Template.substr(0, p)); l = ("" + params).split("&"); for (idx = 0; idx < l.length; idx++) { p = l[idx].split("="); pValue = p[1]; if (pValue == "{searchTerms}") { input = document.getElementById("searchText"); input.name = p[0]; } else if (pValue !== "{language}") { input = document.getElementById("searchengineextraparam"); input.name = p[0]; input.value = pValue; } } } function handleRadioChoiseFocus(e) { changeSearchEngine(this.value); } $(function () { var mainNode, beforeNode, firstEngine; mainNode = document.getElementById("powersearch"); if (!mainNode) mainNode = document.getElementById("search"); if (!mainNode) return; beforeNode = document.getElementById("mw-search-top-table"); if (!beforeNode) return; beforeNode = beforeNode.nextSibling; if (!beforeNode) return; firstEngine = "mediawiki"; choices = document.createElement("div"); choices.style.textAlign = "center"; var lsearchbox = document.getElementById("searchText"); if (!lsearchbox) return; var initValue = lsearchbox.value; var space = ""; for (var id in searchEngines) { var engine = searchEngines[id]; if (engine.ShortName) { if (space) { choices.appendChild(space); } space = document.createTextNode(" "); var span = document.createElement("span"); var $choice = $('<input type="radio" />') .attr({ name: "searchengineselect", value: id, id: "searchengineRadio-" + id }) .on('focus', handleRadioChoiseFocus); $(span).append($choice); choices.appendChild( span ); var label = document.createElement("label"); label.htmlFor = "searchengineRadio-" + id; if (engine.Template.indexOf('http') === 0) { var lienMoteur = document.createElement("a"); lienMoteur.href = engine.Template.replace("{searchTerms}", initValue).replace("{language}", "fa"); lienMoteur.appendChild( document.createTextNode( engine.ShortName ) ); label.appendChild(lienMoteur); } else { label.appendChild( document.createTextNode( engine.ShortName ) ); } choices.appendChild( label ); } } mainNode.insertBefore(choices, beforeNode); var input = document.createElement("input"); input.id = "searchengineextraparam"; input.type = "hidden"; mainNode.insertBefore(input, beforeNode); changeSearchEngine(firstEngine, initValue); }); }());