Utilisateur:Nakor/LiensRouges.js

Une page de Wikipédia, l'encyclopédie libre.
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.
/**
 * Liens rouges
 * 
 * Ajoute deux liens vers [http://www.google.com/search?num=100&q=page+site:fr.wikipedia.org Google] et les [[Special:Whatlinkshere/page|pages liées]] aux liens rouges pour trouver rapidement un titre approchant
 *   ou vérifier si le titre est (très) demandé.
 * Par défaut, le script ne s'exécute automatiquement qu'en prévisualisation dans l'espace principal (articles encyclopédiques)
 *   et un lien dans la boîte à outils permet de l'exécuter ailleurs.
 * Les conditions d'ouverture sont personnalisables.
 * 
 * Exemple : [[page]]<sup class="exposant plainlinks">([http://www.google.com/search?num=100&q=page+site:fr.wikipedia.org gg]|[[Special:Whatlinkshere/page|pl]])</sup>
 * 
 * Auteurs : Seb35, Dake, Nakor
 * 
 * Dernière révision : 3 juin 2009
 * {{Catégorisation JS|LiensRouges}}
 */

////////////////////// ZONE PERSONNALISABLE //////////////////////

// Le script est automatiquement lancé si l'espace de nom ''et'' l'action sont dans les variables suivantes
var liensRougesNSOuvrir = [0];
var liensRougesActionOuvrir = ['submit'];

// Les liens pointant vers les espaces de nom suivants ne sont jamais traités
var liensRougesNSExclus = new String('Discuter|Discussion .*');

///////////////// FIN DE LA ZONE PERSONNALISABLE /////////////////

if(!Array.indexOf) Array.prototype.indexOf = function(w) { for(var i=0; i<this.length; i++) if(this[i] == w) return i; return -1; }
function liensRouges(w)
{
 if(!w)
 {
  document.getElementById('p-tb').getElementsByTagName('ul')[0].innerHTML += '<li><a title="Afficher des liens utiles sur les liens rouges" onclick="liensRouges(1);" style="cursor:pointer;">Liens rouges</a></li>';
  if(liensRougesNSOuvrir.indexOf(mw.config.get('wgNamespaceNumber')) == -1 || liensRougesActionOuvrir.indexOf(mw.config.get('wgAction')) == -1) return;
 }
 var allLinks = document.getElementById('bodyContent').getElementsByTagName('a');
 var reg1 = new RegExp(' ','g');
 var reg2 = new RegExp('^('+liensRougesNSExclus+'):','i');
 for(i=0; i<allLinks.length; i++)
 {
  if(allLinks[i].getAttribute('class') == 'new')
  {
   titre = allLinks[i].getAttribute('title');
   var short_title = titre.replace(' (page inexistante)', '');
   if(reg2.test(short_title)) continue;
   var newElement = document.createElement('sup');
   newElement.className = 'exposant';
   newElement.innerHTML =
     '(<a href="http://www.google.com/search?num=100&q='+short_title+'+site:fr.wikipedia.org" title="Rechercher sur Google ce lien rouge">gg</a>'
   + '|<a href="/wiki/Special:Whatlinkshere/'+short_title.replace(reg1,'_')+'" title="Pages liées de ce lien rouge">pl</a>)';
   allLinks[i].parentNode.insertBefore(newElement, allLinks[i].nextSibling);
  }
 }
}
if(mw.config.get('wgNamespaceNumber') != -1) addOnloadHook(liensRouges);