Utilisateur:Dr Brains/ListLiensRouges.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.
/*
{{Catégorisation JS|ListLiensRouges}}

Ce programme fournit un onglet (ou un lien dans le menu déroulant sur vector)
pour lister les liens rouges d'une page.

La liste est fournie sous forme de liste numérotée en wikitexte,
à copier-coller dans la sous-page de discussion "/À faire"

*/

$(ListLiensRouges_Init);


function ListLiensRouges_Init(){
     var OngletsCactions = document.getElementById('p-cactions');
     if(OngletsCactions){
          var CactionsUl = OngletsCactions.getElementsByTagName('ul')[0];
          CactionsUl.innerHTML += '<li><a href="javascript:ListLiensRouges_Run();">RedLinks</a></li>';
          if(OngletsCactions.className){
               OngletsCactions.className = OngletsCactions.className.replace(/[ ]*emptyPortlet[ ]*/, " ");
          }
     }
}

function ListLiensRouges_Run(){
    var OldTextArea = document.getElementById("RedLIksTextarea");
    if(OldTextArea){
        OldTextArea.parentNode.removeChild(OldTextArea);
        return;
    }
    var Content = document.getElementById('bodyContent');
    if(!Content) Content = document.getElementById('mw_contentholder');
    if(!Content) Content = document.getElementById('article');
    if(!Content) return;
    var RedLinks = new Array();
    var Links = Content.querySelectorAll('a.new');
    for(var a=0,l=Links.length;a<l;a++){
        var Link = Links[a];
        var Target = Link.title;
        if(!Target) Target = Link.textContent;
        if(!Target) continue;
        Target = Target.split(" (page inexistante)").join("");
        if(RedLinks.indexOf(Target)==-1) RedLinks.push(Target);
    }
    var Response = document.createElement('textarea');
    Response.id = "RedLIksTextarea";
    Content.parentNode.insertBefore(Response, Content);
    var Value = "";
    if(RedLinks.length == 0){
        Value ="Pas de liens rouges !";
    }else if(RedLinks.length == 1){
        Value = "1 lien rouge :\n# [["+RedLinks.join("")+"]]"; 
    }else{
        Value = RedLinks.length+" liens rouges :\n# [["+RedLinks.join("]]\n# [[")+"]]";
    }
    Response.value = Value;
}