מדיה ויקי:SearchEngines.js

מתוך חב"דפדיה, אנציקלופדיה חב"דית חופשית
קפיצה לניווט קפיצה לחיפוש

הערה: לאחר הפרסום, ייתכן שיהיה צורך לנקות את זיכרון המטמון (cache) של הדפדפן כדי להבחין בשינויים.

  • פיירפוקס / ספארי: להחזיק את המקש Shift בעת לחיצה על טעינה מחדש (Reload) או ללחוץ על צירוף המקשים Ctrl-F5 או Ctrl-R (במחשב מק: ⌘-R).
  • גוגל כרום: ללחוץ על צירוף המקשים Ctrl-Shift-R (במחשב מק: ⌘-Shift-R).
  • אינטרנט אקספלורר / אדג': להחזיק את המקש Ctrl בעת לחיצה על רענן (Refresh) או ללחוץ על צירוף המקשים Ctrl-F5.
  • אופרה: ללחוץ על Ctrl-F5.
/**
 * בחירה במנועי חיפוש שונים, מוויקיפדיה האנגלית
 * מחבר:User:Gracenotes
 */
/*global $, mw */
$(function () {
	var conf = mw.config.get([
			'wgCanonicalSpecialPageName',
			'wgScriptPath'
		]),
		searchEngines = [];

	if (conf.wgCanonicalSpecialPageName !== 'Search') {
		return;
	}

	var searchForm = document.forms.powersearch || document.forms.search;
	if (!searchForm) {
		return;
	}

	// Input field for advanced mode of Special:Search
	var advSearchText = document.getElementById('loadStatus') || document.getElementById('powerSearchText');
	if (!advSearchText) {
		return;
	}

	var createOption = function (site, action, mainQ, addQ, addV) {
		var opt = document.createElement('option');
		opt.appendChild(document.createTextNode(site));
		searchEngines.push([action, mainQ, addQ, addV]);
		return opt;
	};

	var searchBox = searchForm.lsearchbox || searchForm.search;
	var title = searchForm.title;

	var selectBox = document.createElement('select');
	$(searchForm).on('submit', function (e) {
		var optSelected = searchEngines[selectBox.selectedIndex];
		searchForm.action = optSelected[0];
		searchBox.name = optSelected[1];
		title.name = optSelected[2];
		title.value = optSelected[3];
	});

	selectBox.appendChild(createOption('חיפוש פנימי', conf.wgScriptPath + '/index.php', 'search', 'title', 'Special:Search'));
	selectBox.appendChild(createOption('Google', 'http://www.google.co.il/search', 'q', 'sitesearch', 'chabadpedia.co.il'));
	searchBox.style.marginRight = '0';

	if (advSearchText.parentNode) {
		advSearchText.parentNode.insertBefore(selectBox, advSearchText);
	}
});