Utilisateur:Chphe/PersoLiens.js
Note : après avoir enregistré la page, vous devrez forcer le rechargement complet du cache de votre navigateur pour voir les changements.
Mozilla / Firefox / Konqueror / Safari : maintenez la touche Majuscule (Shift) en cliquant sur le bouton Actualiser (Reload) ou pressez Maj-Ctrl-R (Cmd-R sur Apple Mac) ;
Chrome / Internet Explorer / Opera : maintenez la touche Ctrl en cliquant sur le bouton Actualiser ou pressez Ctrl-F5./**
* Présentation : [[Discussion Projet:JavaScript/2008-2009#Requête d'un script spécial]]
* Auteur : Chphe
* {{Catégorisation JS|PersoLiens}}
*
* avec : [[Utilisateur:Chphe/PersoLiensListe.js]]
*/
var pl_reg_ex = /^http:\/\/([a-z]+)\.wikipedia\.org\/(w\/index\.php\?title=|wiki\/)([^&#$]*)((&|#).*)?$/
function pl_dicho(tab, v)
{
var i=0;
var j=tab.length-1;
while(i<j)
{
var m = parseInt((i+j)/2);
if(tab[m] == v) return true;
if(tab[m] < v)
{
i=m+1;
if(tab[i] == v) return true;
}
else
{
j=m-1;
if(tab[j] == v) return true;
}
}
return false;
}
function pl_lancer_b(liens)
{
for(var l=0; l<liens.length; l++)
{
var a = liens[l];
var titre="";
if( (a.className == "" || a.className == "extiw") && a.title!="") titre = a.title;
else
{
var tab = pl_reg_ex.exec(a.href);
if(tab) titre = (tab[1] != "fr" ? tab[1]+":" : "") + decodeURIComponent(tab[3]).replace(/_/g, " ");
}
if(titre)
for(var type in pl_types)
{
if(pl_dicho(pl_types[type], titre))
{
a.className += " pl_"+type;
break;
}
}
}
}
function pl_lancer()
{
var bc = document.getElementById('bodyContent');
if(!bc) return ;
var liens = bc.getElementsByTagName("a");
var dl = document.getElementById('p-lang');
var liens_b;
if(dl) liens_b = dl.getElementsByTagName("a");
if(liens.length != 0 || (liens_b && liens_b.length != 0)) for(var type in pl_types) pl_types[type].sort();
pl_lancer_b(liens);
if(liens_b) pl_lancer_b(liens_b);
}
$(function ()
{
pl_lancer();
}
)