کاربر:Behaafarid/FootNoteTools.js
از ویکیپدیا، دانشنامهٔ آزاد.
نکته: پس از ذخیرهسازی ممکن است برای دیدن تغییرات نیاز باشد که حافظهٔ نهانی مرورگر خود را خالی کنید. موزیلا / فایرفاکس / Safari: کلید Shift را نگهدارید و روی دکمهٔ Reload کلیک کنید، یا کلیدهای Ctrl-Shift-R را با هم فشار دهید (در رایانههای اپل مکینتاش کلیدهای Cmd-Shift-R)؛ اینترنت اکسپلورر: کلید Ctrl نگهدارید و روی دکمهٔ Refresh کلیک کنید، یا کلیدهای Ctrl-F5 را با هم فشار دهید؛ Konqueror: روی دکمهٔ Reload کلیک کنید و یا کلید F5 را فشار دهید؛ اُپرا: کاربران اُپرا ممکن است لازم باشد که بطور کامل حافظهٔ نهانی مرورگر را در منوی Tools→Preferences خالی کنند.
<pre> function Sorter(obj) { var ref = "ref"; //name of ref tag var Note= "Note"; //name of Note tag var s = obj.value; var ss = new Array(); var notes=new Array(); var counter = 0; var sl; //left substring var sr; //right substring //Find First occurence of Notes (used later) var noteplace1 = s.indexOf("{{"+Note+"|"); //extract keys posa=s.indexOf("{{"+ref+"|"); posb = s.indexOf("}}",posa); a = posa+6; b = posb; while (posa>-1){ ss.push(s.slice(a,b)); posa=s.indexOf("{{"+ref+"|",posb); posb = s.indexOf("}}",posa); a = posa+6; b = posb; } //Find the corresponding footnotes posa=s.indexOf("#{{"+Note+"|"+ss.pop()+"}}"); posb=s.indexOf("\n",posa); while (posa>-1){ notes.push(s.slice(posa,posb)); counter = counter + 1; //remove that string: sl=s.slice(0,posa); sr=s.slice(posb+1);//+1 to remove newline character as well. s = sl+sr; posa=s.indexOf("#{{"+Note+"|"+ss.pop()+"}}"); posb=s.indexOf("\n",posa); } //put the strings back //first slice string from the 1st occurence of Notes //to make room for notes insertion if (noteplace1 > -1) { sl = s.slice(0,noteplace1); sr = s.slice(noteplace1); } while (counter>0){ sl = sl + notes.pop() + "\n"; counter = counter -1; } s = sl+sr; //update string. obj.value=s; alert("SUCCESS"); } </pre>