משתמש:Mikimik/js/ShortNSSearch.js
מראה
הערה: לאחר הפרסום, ייתכן שיהיה צורך לנקות את זיכרון המטמון (cache) של הדפדפן כדי להבחין בשינויים.
- פיירפוקס / ספארי: להחזיק את המקש Shift בעת לחיצה על טעינה מחדש (Reload) או ללחוץ על צירוף המקשים Ctrl-F5 או Ctrl-R (במחשב מק: ⌘-R).
- גוגל כרום: ללחוץ על צירוף המקשים Ctrl-Shift-R (במחשב מק: ⌘-Shift-R).
- אדג': להחזיק את המקש Ctrl בעת לחיצה על רענן (Refresh) או ללחוץ על צירוף המקשים Ctrl-F5.
/* חיפוש באמצעות שמות מרחב מקוצרים */
/* written by [[User:Yonidebest]], extended by [[User:Mikimik]] */
function searchInputCheck()
{
try
{
var shortNS = new Array();
shortNS[ 0] = [ false , "ד" , "l" , "Special:" ]; // NS -1
shortNS[ 1] = [ false , "תמ" , "uc" , "Special:Contributions/" ]; // NS -1
shortNS[ 2] = [ true , "ש" , "k" , "Talk:" ]; // NS 1
shortNS[ 3] = [ true , "מ" , "u" , "User:" ]; // NS 2
shortNS[ 4] = [ true , "שמ" , "ut" , "User_talk:" ]; // NS 3
shortNS[ 5] = [ true , "ו" , "p" , "Project:" ]; // NS 4
shortNS[ 6] = [ true , "שו" , "pt" , "Project_talk:" ]; // NS 5
shortNS[ 7] = [ true , "קו" , "f" , "File:" ]; // NS 6
shortNS[ 8] = [ true , "שקו" , "ft" , "File_talk:" ]; // NS 7
shortNS[ 9] = [ true , "מו" , "mw" , "MediaWiki:" ]; // NS 8
shortNS[10] = [ true , "שמו" , "mwt" , "MediaWiki_talk:" ]; // NS 9
shortNS[11] = [ true , "ת" , "t" , "Template:" ]; // NS 10
shortNS[12] = [ true , "שת" , "tt" , "Template_talk:" ]; // NS 11
shortNS[13] = [ true , "ע" , "h" , "Help:" ]; // NS 12
shortNS[14] = [ true , "שע" , "ht" , "Help_talk:" ]; // NS 13
shortNS[15] = [ true , "ק" , "c" , "Category:" ]; // NS 14
shortNS[16] = [ true , "שק" , "ct" , "Category_talk:" ]; // NS 15
shortNS[17] = [ true , "פ" , "p" , "פורטל:" ]; // NS 100, exists in hebrew wikipedia, quote & news
shortNS[18] = [ true , "שפ" , "pt" , "שיחת_פורטל:" ]; // NS 101
if ( wgContentLanguage != "he" )
{
shortNS[17][3] = "Portal:";
shortNS[18][3] = "Portal_talk:";
}
var searchInput = document.getElementById("searchInput");
var rxhe, rxen;
for ( var i = 0 ; i < shortNS.length ; i++ )
{
rxhe = new RegExp("^" + shortNS[i][1] + "(;|:)");
rxen = new RegExp("^" + shortNS[i][2] + "(;|:)", "i");
if ( rxhe.test(searchInput.value) || rxen.test(searchInput.value) )
{
searchInput.value = searchInput.value.replace(rxhe,shortNS[i][3]).replace(rxen,shortNS[i][3]);
return true;
}
if ( shortNS[i][0] )
{
rxhe = new RegExp("^ע" + shortNS[i][1] + "(;|:)");
rxen = new RegExp("^e" + shortNS[i][2] + "(;|:)", "i");
if ( rxhe.test(searchInput.value) || rxen.test(searchInput.value) )
{
document.location = mw.config.get('wgServer') + mw.config.get('wgScript') + "?title=" +
searchInput.value.replace(rxhe,shortNS[i][3]).replace(rxen,shortNS[i][3]) + "&action=edit";
return false;
}
rxhe = new RegExp("^ג" + shortNS[i][1] + "(;|:)");
rxen = new RegExp("^v" + shortNS[i][2] + "(;|:)", "i");
if ( rxhe.test(searchInput.value) || rxen.test(searchInput.value) )
{
document.location = mw.config.get('wgServer') + mw.config.get('wgScript') + "?title=" +
searchInput.value.replace(rxhe,shortNS[i][3]).replace(rxen,shortNS[i][3]) + "&action=history";
return false;
}
}
}
return true;
}
catch (e)
{
return true;
}
}
function hookSearchInputCheck()
{
try
{
if ( arguments.callee != hookSearchInputCheck ) return; // if local function was reloaded let the newer function run
var form = document.getElementById("searchform");
if ( !form ) return;
form.onsubmit = function() { return searchInputCheck(); }
}
catch (e)
{
return true;
}
}
$ ( hookSearchInputCheck );