Usuari:Coet/scripts/CaixaRecerca.js
Aparença
(S'ha redirigit des de: Usuari:Pasqual/scripts/CaixaRecerca.js)
El codi que afegiu en aquesta pàgina podria tenir contingut maliciós que comprometi el vostre compte. Si no esteu segur si el codi a afegir és segur, pregunteu abans en la Taverna. El codi s'executarà en mostrar una previsualització d'aquesta pàgina. |
Nota: Després de desar, heu de netejar la memòria cau del navegador per veure els canvis. En la majoria de navegadors amb Windows o Linux, premeu Ctrl+F5 o bé premeu Shift i cliqueu el botó "Actualitza" (Ctrl i "Actualitza" amb Internet Explorer). Vegeu més informació i instruccions per a cada navegador a Viquipèdia:Neteja de la memòria cau.
//<pre><nowiki>
//Fuente: http://en.wikipedia.org/wiki/User:Zocky/SearchBox.js
//Personalizada por Axxgreazz, para el [[w:es:User:Axxgreazz/Monobook-Suite]]
//http://es.wikipedia.org/wiki/Usuario:Axxgreazz/Monobook-Suite
// (c) 2006 [[User:Zocky]], released under GPL
var sr$t;
var sr$f;
var sr$s;
var sr$r;
var sr$w;
var sr$i;
function srBack()
{
if (sr$s.value=='') {sr$t.focus(); return }
if (sr$f.srRegexp.checked) {
var searchString = sr$s.value;
} else {
searchString=sr$s.value.replace(/([\[\]\{\}\|\.\*\?\(\)\$\^\\])/g,'\\$1');
}
searchString="("+searchString+")(?![\\s\\S]*"+searchString+")";
if (sr$f.srCase.checked)
var re=new RegExp(searchString);
else
var re=new RegExp(searchString,"i");
var res = re.exec (sr$t.value.substring(0,sr$t.selectionStart));
if (!res) {
var res = re.exec (sr$t.value)
}
if (res)
{
sr$t.selectionStart=res.index;
sr$t.selectionEnd=res.index+res[1].length;
}
else sr$t.selectionStart=sr$t.selectionEnd;
srSync();
}
function srNext()
{
if (sr$s.value=='') {sr$t.focus(); return }
if (sr$f.srRegexp.checked) {
var searchString = sr$s.value;
} else {
searchString=sr$s.value.replace(/([\[\]\{\}\|\.\*\?\(\)\$\^\\])/g,'\\$1');
}
if (sr$f.srCase.checked)
var re=new RegExp(searchString,"g");
else
var re=new RegExp(searchString,"gi");
re.lastIndex=sr$t.selectionEnd;
var res = re.exec (sr$t.value)
if (!res) {
re.lastIndex=0;
var res = re.exec (sr$t.value)
}
if (res)
{
sr$t.selectionStart=res.index;
sr$t.selectionEnd=res.index+res[0].length;
}
else sr$t.selectionStart=sr$t.selectionEnd;
srSync();
}
function srReplace()
{
var sels=sr$t.selectionStart;
var sele=sr$t.selectionEnd;
var selr=sr$t.value.length-sele;
if (sr$s.value=='' || sels==sele) {sr$t.focus(); return }
if (sr$f.srRegexp.checked) {
var searchString = sr$s.value;
var replaceString = sr$r.value;
} else {
searchString=sr$s.value.replace(/([\[\]\{\}\|\.\*\?\(\)\$\^\\])/g,'\\$1');
replaceString=sr$r.value.replace(/([\$\\])/g,'\\$1');
}
if (sr$f.srCase.checked)
var re=new RegExp(searchString,"g");
else
var re=new RegExp(searchString,"gi");
re.lastIndex=sels;
var res = re.exec (sr$t.value);
var $$=0;
if (res && res.index==sels && res[0].length==sele-sels)
{
if (sr$f.srRegexp.checked) {
replaceString=replaceString.replace(/\\\\/g,'&backslash;').replace(/\\\$/g,'$')
var replaceBits=(" "+replaceString).split(/(?=\$\d)/);
replaceString=replaceBits[0].substring(1);
for (var i=1; i<replaceBits.length; i++)
{
$$=replaceBits[i][1]-'0';
if ($$<res.length)
replaceString += res[$$] + replaceBits[i].substring(2)
else
replaceString += replaceBits[i];
}
replaceString=replaceString.replace (/\\n/,"\n").replace (/&backslash;/g,"\\").replace
(/$/g,"\$")
}
sr$t.value= sr$t.value.substring(0,sels) + replaceString + sr$t.value.substring(sele);
}
sr$t.selectionStart=sels;
sr$t.selectionEnd=sr$t.value.length-selr;
srSync();
}
function srReplaceall()
{
if (!sr$s.value) {sr$t.focus(); return }
var sels=sr$t.selectionStart;
var sele=sr$t.selectionEnd;
var selr=sr$t.value.length-sele;
var reps;
if (sr$f.srRegexp.checked) {
var searchString = sr$s.value;
var replaceString = sr$r.value.replace(/\\\\/,'&backslash;').replace(/\\n/,'\n').replace(/&backslash;/,"\\");
} else {
searchString=sr$s.value.replace(/([\[\]\{\}\|\.\*\?\(\)\$\^\\])/g,'\\$1');
replaceString=sr$r.value.replace(/([\$\\])/g,'\\$1');
}
if (sele>sels)
reps=sr$t.value.substring(sels,sele);
else
reps=sr$t.value;
if (sr$f.srCase.checked)
var re=new RegExp(searchString,"g");
else
var re=new RegExp(searchString,"gi");
var replaceCounter=0;
var replaceFunc=function(){replaceCounter++;return replaceString};
reps=reps.replace(re,replaceFunc);
if (sele>sels)
sr$t.value = sr$t.value.substring(0,sels) + reps + sr$t.value.substring(sele);
else
sr$t.value = reps;
sr$t.selectionStart=sels;
sr$t.selectionEnd=sele>sels ? sr$t.value.length-selr : sels;
window.status = replaceCounter+" ocurrences of " + searchString + " replaced.";
srSync();
}
function srToggleCase()
{
var sels=sr$t.selectionStart;
var sele=sr$t.selectionEnd;
var selr=sr$t.value.length-sele;
var selt=sr$t.value.substring(sels,sele);
if (sele>sels)
{
if (selt==selt.toUpperCase())
selt=selt.toLowerCase()
else if (selt==selt.toLowerCase() && sele-sels>1)
selt=selt.substring(0,1).toUpperCase()+selt.substring(1).toLowerCase()
else
selt=selt.toUpperCase();
sr$t.value = sr$t.value.substring(0,sels) + selt + sr$t.value.substring(sele);
sr$t.selectionStart=sels;
sr$t.selectionEnd=sele>sels ? sr$t.value.length-selr : sels;
}
srSync();
}
function srSync()
{
var i;
var allLines=0;
var lineNo=0;
var w=sr$t.cols-5;
var dummy=sr$t.value.split("\n");
for (i=0;i<dummy.length;i++){allLines+=Math.ceil(dummy[i].length/w)}
var dummy=sr$t.value.substring(0,sr$t.selectionStart).split("\n");
for (i=0;i<dummy.length;i++){lineNo+=Math.ceil(dummy[i].length/w)}
// alert (w+" "+lineNo+"/"+allLines);
sr$t.scrollTop=sr$t.scrollHeight*(lineNo-10)/allLines;
sr$t.focus();
}
function srInit()
{
if(document.getElementById('wpTextbox1') && document.editform) {
var srBoxCode ='<form name="srForm"><table id="srBox" cellpadding="0" cellspacing="2">'
+'<tr><td valign="bottom"><small><span style="color:#000000;">cerca:</span></small><br/>'
+'<input type="text" name="srSearch" accesskey="F" tabindex="8"'
+'onkeypress="event.which == 13 && srNext()"; value=""/></td>'
+'<td valign="bottom"><small><span style="color:#000000;">reemplaça amb:</span></small><br/><input type="text" name="srReplace" accesskey="G" tabindex="9"'
+'onkeypress="event.which == 13 && srNext()"; value=""/></td>'
+'<td valign="top">'
+'<input type="checkbox" name="srCase" onclick="sr$t.focus()" tabindex="10"/><small><span style="color:#000000;">diferencia maj/min </span</small>'
+'<input type="checkbox" name="srRegexp" onclick="sr$t.focus()" tabindex="11"/><small><span style="color:#000000;">usa regexp</span></small><br/> '
+'<a href="javascript:srBack()" onmouseover="sr$t.focus()" title="cerca anterior [alt-2]" accesskey="2"><</a> '
+'<a href="javascript:srNext()" onmouseover="sr$t.focus()" title="cerca següent [alt-3]" accesskey="3">cerca ></a> '
+'<a href="javascript:srReplace();srBack()" onmouseover="sr$t.focus()" title="reemplaça i cerca anterior [alt-4]" accesskey="4"><</a> '
+'<a href="javascript:srReplace()" onmouseover="sr$t.focus()" title="reemplaça esta coincidència">reemplaça</a> '
+'<a href="javascript:srReplace();srNext()" onmouseover="sr$t.focus()" title="reemplaça i cerca següent [alt-5]" accesskey="5">></a> '
+'<a href="javascript:srReplaceall()" onmouseover="sr$t.focus()" title="reemplaça totes les coincidències [alt-7]" accesskey="7">reemplaça tot</a> '
+'</td></tr></table></form>'
var ep=document.getElementById('searchInput');
ep.accessKey='none';
sr$t=document.editform.wpTextbox1;
sr$w=sr$t.style.width;
var sr=document.createElement('div');
sr.innerHTML=srBoxCode;
var im=document.createElement('span');
/*
im.innerHTML='<a id="SearchIcon" href="javascript:srShowHide()"><img style="cursor: pointer;" title="Search/Replace" alt="Search/Replace" src="http://upload.wikimedia.org/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="http://upload.wikimedia.org/wikipedia/en/1/12/Button_case.png" border="0" height="22" width="23"></a>';
*/
var ep=document.getElementById('toolbar');
if (ep)
{
ep.appendChild(im)
}
else
{
var ep=document.getElementById('editform');
ep.parentNode.insertBefore(im,ep);
}
/*
sr$i=document.getElementById('SearchIcon');
sr$i.accessKey="F";
sr.firstChild.style.display='none';
*/
var ep=document.getElementById('editform');
ep.parentNode.insertBefore(sr,ep);
sr$f=document.srForm;
sr$s=document.srForm.srSearch;
sr$r=document.srForm.srReplace;
sr$f.style.display='none';
}
}
function srShowHide()
{
if (sr$f.style.display=='none')
{
sr$f.style.display='block';
sr$i.accessKey="none";
sr$t.style.width='auto';
sr$s.focus();
}
else
{
sr$f.style.display='none';
sr$t.style.width=sr$w;
sr$i.accessKey="F";
}
}
inclou ("caixarecerca.css");
$(srInit);
//</nowiki></pre>