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

  • פיירפוקס / ספארי: להחזיק את המקש Shift בעת לחיצה על טעינה מחדש (Reload) או ללחוץ על צירוף המקשים Ctrl-F5 או Ctrl-R (במחשב מק: ⌘-R).
  • גוגל כרום: ללחוץ על צירוף המקשים Ctrl-Shift-R (במחשב מק: ⌘-Shift-R).
  • אינטרנט אקספלורר / אדג': להחזיק את המקש Ctrl בעת לחיצה על רענן (Refresh) או ללחוץ על צירוף המקשים Ctrl-F5.
  • אופרה: ללחוץ על Ctrl-F5.
(function(){
	function counter(d, z){
		if (d==0) {
			counter.busy_processes=0;
			counter.total=z;
		} else {
			counter.busy_processes=counter.busy_processes+d;
			counter.total=counter.total+z;
			if (counter.busy_processes == 0){
				mw.notify("בוצעו "+counter.total+" החלפות");
			}
		}
	}
	
	function ReplaceName(regex, replaceTo, editSummary){
		counter(0,0); // reset the counter
		counter(1,0);
		setTimeout(function(){counter(-1,0);}, 1000);
		var abcdefg = "";
		if (mw.config.get("wgCanonicalSpecialPageName") == "Prefixindex" && mw.config.get('wgPageName').match(/ב\/(.+\:)/)) {
			abcdefg = mw.config.get('wgPageName').match(/ב\/(.+\:)/)[1];
		}
		$('.mw-body-content a').each(function(){
			var page = abcdefg + $(this).context.text;
			new mw.Api().get({action:'parse', page: page, prop: 'wikitext'}).done(function(d){
				var oldText = d.parse.wikitext['*'];
				var newText = d.parse.wikitext['*'].replace(regex, replaceTo);
				if(oldText!=newText) {
					counter(1,0);
					new mw.Api().postWithToken('csrf', {action:'edit', summary: editSummary, text: newText, title: page }).done(function(){
						mw.notify('ההחלפה בוצעה בדף ' + page);
						counter(-1,1);
					});
				}
			});
		});
	}
	
	if (mw.config.get("wgCanonicalSpecialPageName") == "Whatlinkshere" || mw.config.get("wgCanonicalSpecialPageName") == "Search" || mw.config.get("wgCanonicalSpecialPageName") == "LinkSearch" || mw.config.get("wgCanonicalSpecialPageName") == "Prefixindex") {
			$(mw.util.addPortletLink('p-tb', '#', 'חיפוש והחלפה', 't-search-replace', 'הפעלת פונקציית חיפוש והחלפה', null, '#t-whatlinkshere')).click(WReplaceName);
	}
	
	function WReplaceName(){
		var SumTTR = prompt("תקציר עריכה");
		if (SumTTR !== null) {
			var RegexTR = new RegExp(prompt("ביטוי רגולרי: מה להחליף?"), 'g');
			var RegexRT = prompt("ביטוי רגולרי: במה להחליף?");
			ReplaceName(RegexTR, RegexRT, SumTTR);
		}
	}
})();