https://en.wikipedia.org/w/index.php?action=history&feed=atom&title=User%3AJava7837%2FSearchBox.js
User:Java7837/SearchBox.js - Revision history
2025-06-09T18:08:13Z
Revision history for this page on the wiki
MediaWiki 1.45.0-wmf.4
https://en.wikipedia.org/w/index.php?title=User:Java7837/SearchBox.js&diff=1005263405&oldid=prev
Ladsgroup: Maintenance: Replacing addOnloadHook with native jQuery (mw:ResourceLoader/Migration_guide_(users)#addOnloadHook - phab:T130879)
2021-02-06T20:38:01Z
<p>Maintenance: Replacing addOnloadHook with native jQuery (<a href="https://www.mediawiki.org/wiki/ResourceLoader/Migration_guide_(users)#addOnloadHook" class="extiw" title="mw:ResourceLoader/Migration guide (users)">mw:ResourceLoader/Migration_guide_(users)#addOnloadHook</a> - <a href="https://phabricator.wikimedia.org/T130879" class="extiw" title="phab:T130879">phab:T130879</a>)</p>
<table style="background-color: #fff; color: #202122;" data-mw="interface">
<col class="diff-marker" />
<col class="diff-content" />
<col class="diff-marker" />
<col class="diff-content" />
<tr class="diff-title" lang="en">
<td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">← Previous revision</td>
<td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">Revision as of 20:38, 6 February 2021</td>
</tr><tr>
<td colspan="2" class="diff-lineno">Line 302:</td>
<td colspan="2" class="diff-lineno">Line 302:</td>
</tr>
<tr>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div> + '&action=raw&ctype=text/css&dontcountme=s">');</div></td>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div> + '&action=raw&ctype=text/css&dontcountme=s">');</div></td>
</tr>
<tr>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td>
</tr>
<tr>
<td class="diff-marker" data-marker="−"></td>
<td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div><del style="font-weight: bold; text-decoration: none;">addOnloadHook</del>(srInit);</div></td>
<td class="diff-marker" data-marker="+"></td>
<td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins style="font-weight: bold; text-decoration: none;">$</ins>(srInit);</div></td>
</tr>
<tr>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>//</nowiki></pre></div></td>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>//</nowiki></pre></div></td>
</tr>
</table>
Ladsgroup
https://en.wikipedia.org/w/index.php?title=User:Java7837/SearchBox.js&diff=121306650&oldid=prev
Java7837: ←Created page with '// Search box for Mediawiki // (c) 2006 User:Zocky, released under GPL //<pre><nowiki> var sr$t; var sr$f; var sr$s; var sr$r; var sr$w; var sr$i; var sr$re; v...'
2007-04-09T00:38:10Z
<p><a href="/wiki/Wikipedia:AES" class="mw-redirect" title="Wikipedia:AES">←</a>Created page with '// Search box for Mediawiki // (c) 2006 <a href="/wiki/User:Zocky" title="User:Zocky">User:Zocky</a>, released under GPL //<pre><nowiki> var sr$t; var sr$f; var sr$s; var sr$r; var sr$w; var sr$i; var sr$re; v...'</p>
<p><b>New page</b></p><div>// Search box for Mediawiki<br />
// (c) 2006 [[User:Zocky]], released under GPL<br />
//<pre><nowiki><br />
<br />
var sr$t;<br />
var sr$f;<br />
var sr$s;<br />
var sr$r;<br />
var sr$w;<br />
var sr$i;<br />
var sr$re;<br />
var sr$mc;<br />
<br />
function $e(id) {return document.getElementById(id)}<br />
<br />
function srBack()<br />
{<br />
if (sr$s.value=='') {sr$t.focus(); return }<br />
<br />
if (sr$re.checked) {<br />
var searchString = sr$s.value;<br />
} else {<br />
searchString=sr$s.value.replace(/([\[\]\{\}\|\.\*\?\(\)\$\^\\])/g,'\\$1');<br />
}<br />
<br />
searchString="("+searchString+")(?![\\s\\S]*"+searchString+")";<br />
if (sr$mc.checked)<br />
var re=new RegExp(searchString);<br />
else<br />
var re=new RegExp(searchString,"i");<br />
<br />
var res = re.exec (sr$t.value.substring(0,sr$t.selectionStart));<br />
if (!res) {<br />
var res = re.exec (sr$t.value)<br />
}<br />
<br />
if (res)<br />
{<br />
sr$t.selectionStart=res.index;<br />
sr$t.selectionEnd=res.index+res[1].length;<br />
}<br />
else sr$t.selectionStart=sr$t.selectionEnd;<br />
<br />
srSync();<br />
}<br />
<br />
function srNext()<br />
{<br />
if (sr$s.value=='') {sr$t.focus(); return }<br />
<br />
if (sr$re.checked) {<br />
var searchString = sr$s.value;<br />
} else {<br />
searchString=sr$s.value.replace(/([\[\]\{\}\|\.\*\?\(\)\$\^\\])/g,'\\$1');<br />
}<br />
<br />
if (sr$mc.checked)<br />
var re=new RegExp(searchString,"g");<br />
else<br />
var re=new RegExp(searchString,"gi");<br />
<br />
re.lastIndex=sr$t.selectionEnd;<br />
var res = re.exec (sr$t.value)<br />
if (!res) {<br />
re.lastIndex=0;<br />
var res = re.exec (sr$t.value)<br />
}<br />
<br />
if (res)<br />
{<br />
sr$t.selectionStart=res.index;<br />
sr$t.selectionEnd=res.index+res[0].length;<br />
}<br />
else sr$t.selectionStart=sr$t.selectionEnd;<br />
srSync();<br />
}<br />
<br />
function srReplace()<br />
{<br />
<br />
var sels=sr$t.selectionStart;<br />
var sele=sr$t.selectionEnd;<br />
var selr=sr$t.value.length-sele;<br />
<br />
if (sr$s.value=='' || sels==sele) {sr$t.focus(); return }<br />
<br />
if (sr$re.checked) {<br />
var searchString = sr$s.value;<br />
var replaceString = sr$r.value;<br />
<br />
} else {<br />
searchString=sr$s.value.replace(/([\[\]\{\}\|\.\*\?\(\)\$\^\\])/g,'\\$1');<br />
replaceString=sr$r.value.replace(/([\$\\])/g,'\\$1');<br />
}<br />
<br />
if (sr$mc.checked)<br />
var re=new RegExp(searchString,"g");<br />
else<br />
var re=new RegExp(searchString,"gi");<br />
<br />
re.lastIndex=sels;<br />
var res = re.exec (sr$t.value);<br />
var $$=0;<br />
if (res && res.index==sels && res[0].length==sele-sels)<br />
{<br />
if (sr$re.checked) {<br />
replaceString=replaceString.replace(/\\\\/g,'&backslash;').replace(/\\\$/g,'&dollar;')<br />
var replaceBits=(" "+replaceString).split(/(?=\$\d)/);<br />
replaceString=replaceBits[0].substring(1);<br />
for (var i=1; i<replaceBits.length; i++)<br />
{<br />
$$=replaceBits[i][1]-'0';<br />
if ($$<res.length)<br />
replaceString += res[$$] + replaceBits[i].substring(2)<br />
else<br />
replaceString += replaceBits[i];<br />
}<br />
replaceString=replaceString.replace (/\\n/,"\n").replace (/&backslash;/g,"\\").replace<br />
(/&dollar;/g,"\$")<br />
<br />
}<br />
sr$t.value= sr$t.value.substring(0,sels) + replaceString + sr$t.value.substring(sele);<br />
}<br />
<br />
sr$t.selectionStart=sels;<br />
sr$t.selectionEnd=sr$t.value.length-selr;<br />
srSync();<br />
}<br />
<br />
<br />
function srReplaceall()<br />
{<br />
if (!sr$s.value) {sr$t.focus(); return }<br />
<br />
var sels=sr$t.selectionStart;<br />
var sele=sr$t.selectionEnd;<br />
var selr=sr$t.value.length-sele;<br />
<br />
var reps;<br />
<br />
if (sr$re.checked) {<br />
var searchString = sr$s.value;<br />
var replaceString = sr$r.value.replace(/\\\\/,'&backslash;').replace(/\\n/,'\n').replace(/&backslash;/,"\\");<br />
} else {<br />
searchString=sr$s.value.replace(/([\[\]\{\}\|\.\*\?\(\)\$\^\\])/g,'\\$1');<br />
replaceString=sr$r.value.replace(/([\$\\])/g,'\\$1');<br />
}<br />
<br />
if (sele>sels)<br />
reps=sr$t.value.substring(sels,sele);<br />
else<br />
reps=sr$t.value;<br />
<br />
if (sr$mc.checked)<br />
var re=new RegExp(searchString,"g");<br />
else<br />
var re=new RegExp(searchString,"gi");<br />
<br />
var replaceCounter=0;<br />
<br />
var replaceFunc=function(){replaceCounter++;return replaceString};<br />
<br />
reps=reps.replace(re,replaceFunc);<br />
<br />
if (sele>sels)<br />
sr$t.value = sr$t.value.substring(0,sels) + reps + sr$t.value.substring(sele);<br />
else<br />
sr$t.value = reps;<br />
<br />
sr$t.selectionStart=sels;<br />
sr$t.selectionEnd=sele>sels ? sr$t.value.length-selr : sels;<br />
window.status = replaceCounter+" ocurrences of " + searchString + " replaced.";<br />
srSync();<br />
}<br />
<br />
function srToggleCase()<br />
{<br />
var sels=sr$t.selectionStart;<br />
var sele=sr$t.selectionEnd;<br />
var selr=sr$t.value.length-sele;<br />
var selt=sr$t.value.substring(sels,sele);<br />
<br />
if (sele>sels)<br />
{<br />
if (selt==selt.toUpperCase())<br />
selt=selt.toLowerCase()<br />
else if (selt==selt.toLowerCase() && sele-sels>1)<br />
selt=selt.substring(0,1).toUpperCase()+selt.substring(1).toLowerCase()<br />
else<br />
selt=selt.toUpperCase();<br />
<br />
sr$t.value = sr$t.value.substring(0,sels) + selt + sr$t.value.substring(sele);<br />
sr$t.selectionStart=sels;<br />
sr$t.selectionEnd=sele>sels ? sr$t.value.length-selr : sels;<br />
}<br />
srSync();<br />
}<br />
<br />
<br />
function srSync()<br />
{<br />
var i;<br />
var allLines=0;<br />
var lineNo=0;<br />
var w=sr$t.cols-5;<br />
<br />
var dummy=sr$t.value.split("\n");<br />
for (i=0;i<dummy.length;i++){allLines+=Math.ceil(dummy[i].length/w)}<br />
<br />
var dummy=sr$t.value.substring(0,sr$t.selectionStart).split("\n");<br />
for (i=0;i<dummy.length;i++){lineNo+=Math.ceil(dummy[i].length/w)}<br />
<br />
// alert (w+" "+lineNo+"/"+allLines);<br />
<br />
sr$t.scrollTop=sr$t.scrollHeight*(lineNo-10)/allLines;<br />
sr$t.focus();<br />
}<br />
<br />
<br />
function srInit()<br />
{<br />
<br />
if($e('wpTextbox1')) {<br />
<br />
var srBoxCode ='<div id="srForm"><table id="srBox" cellpadding="0" cellspacing="2">'<br />
+'<tr><td valign="bottom"><small><span style="color:#000000;">search for:</span></small><br/>'<br />
+'<input type="text" id="srSearch" accesskey="F" tabindex="8"'<br />
+'onkeypress="event.which == 13 && srNext()"; value=""/></td>'<br />
+'<td valign="bottom"><small><span style="color:#000000;">replace with:</span></small><br/><input type="text" id="srReplace" accesskey="G" tabindex="9"'<br />
+'onkeypress="event.which == 13 && srNext()"; value=""/></td>'<br />
+'<td valign="top">'<br />
+'<input type="checkbox" id="srCase" onclick="sr$t.focus()" tabindex="10"/><small><span style="color:#000000;">match case</span</small>'<br />
+'<input type="checkbox" id="srRegexp" onclick="sr$t.focus()" tabindex="11"/><small><span style="color:#000000;">use regexp</span></small><br/> '<br />
+'<a href="javascript:srBack()" onmouseover="sr$t.focus()" title="find previous match [alt-2]" accesskey="2">&lt;</a>&nbsp;'<br />
+'<a href="javascript:srNext()" onmouseover="sr$t.focus()" title="find next match [alt-3]" accesskey="3">find&nbsp;&nbsp;&gt;</a>&emsp;'<br />
+'<a href="javascript:srReplace();srBack()" onmouseover="sr$t.focus()" title="replace and find previous match [alt-4]" accesskey="4">&lt;</a>&nbsp;'<br />
+'<a href="javascript:srReplace()" onmouseover="sr$t.focus()" title="replace this match">replace</a>&nbsp;'<br />
+'<a href="javascript:srReplace();srNext()" onmouseover="sr$t.focus()" title="replace and find next match [alt-5]" accesskey="5">&gt;</a>&emsp;'<br />
+'<a href="javascript:srReplaceall()" onmouseover="sr$t.focus()" title="replace all matches [alt-7]" accesskey="7">replace&nbsp;all</a>&emsp;'<br />
+'</td></tr></table></div>'<br />
<br />
var ep=$e('searchInput');<br />
if (ep) ep.accessKey='none';<br />
<br />
sr$t=document.editform.wpTextbox1;<br />
sr$w=sr$t.style.width;<br />
<br />
var sr=document.createElement('div');<br />
sr.innerHTML=srBoxCode;<br />
<br />
var im=document.createElement('span');<br />
im.innerHTML='<a id="SearchIcon" href="javascript:srShowHide()"><img style="cursor: pointer;" title="Search/Replace" alt="Search/Replace" src="/media/wikipedia/en/1/12/Button_find.png" border="0" height="22" width="23"></a><a href="javascript:srToggleCase()"><img style="cursor: pointer;" title="Toggle case" alt="Toggle case" src="/media/wikipedia/en/1/12/Button_case.png" border="0" height="22" width="23"></a>';<br />
<br />
var ep=$e('toolbar');<br />
if (ep)<br />
{<br />
ep.appendChild(im)<br />
}<br />
else<br />
{<br />
var ep=$e('editform');<br />
ep.parentNode.insertBefore(im,ep);<br />
} <br />
<br />
sr$i=$e('SearchIcon');<br />
sr$i.accessKey="F";<br />
sr.firstChild.style.display='none';<br />
<br />
<br />
var ep=$e('editform');<br />
ep.parentNode.insertBefore(sr,ep);<br />
<br />
sr$f=$e('srForm');<br />
sr$s=$e('srSearch');<br />
sr$r=$e('srReplace');<br />
sr$re=$e('srRegexp');<br />
sr$mc=$e('srCase');<br />
<br />
}<br />
}<br />
<br />
function srShowHide()<br />
{<br />
if (sr$f.style.display=='none')<br />
{<br />
sr$f.style.display='block';<br />
sr$i.accessKey="none";<br />
sr$t.style.width='auto';<br />
sr$s.focus();<br />
}<br />
else<br />
{<br />
sr$f.style.display='none';<br />
sr$t.style.width=sr$w;<br />
sr$i.accessKey="F";<br />
}<br />
}<br />
<br />
<br />
document.write('<link rel="stylesheet" type="text/css" href="' <br />
+ 'http://en.wikipedia.org/w/index.php?title=User:Zocky/SearchBox.css'<br />
+ '&action=raw&ctype=text/css&dontcountme=s">');<br />
<br />
addOnloadHook(srInit);<br />
//</nowiki></pre></div>
Java7837