Aller au contenu

Utilisateur:Dr Brains/CollapseSection.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.
/*

Masquage/Affichage d'une section via un lien juste devant le titre de la section

*/

var CollapseSection_Show = "[+]";
var CollapseSection_Hide = "[-]";

$(CollapseSection_Init);

function CollapseSection_Init(){
    var Content = document.getElementById("bodyContent");
    if(!Content)Content = document.getElementById("article");
    if(!Content)Content = document.getElementById("contentwrapper");
    if(!Content) return;
    for (var level = 1; level <= 6; ++level) {
        var h = Content.getElementsByTagName("h" + level);
        for (var i = 0; i < h.length; ++i) {
            var ThisSection = h[i];
            var GoodSectionTitle = false;
            var Spans = ThisSection.getElementsByTagName('span');
            for(var s=0;s<Spans.length;s++){
                if( $(Spans[s]).hasClass("mw-headline")) GoodSectionTitle = true;
            }
            if(!GoodSectionTitle) continue;
            var Separator = document.createTextNode(" ");
            var Link = document.createElement("a");
            Link.id = "CollapseSection_Link_" + level + "_" + i
            Link.innerHTML = CollapseSection_Hide;
            Link.href="javascript:CollapseSection_Toggle(\'CollapseSection_Link_" + level + "_" + i +"\');";
            ThisSection.insertBefore(Separator, ThisSection.firstChild );
            ThisSection.insertBefore(Link, ThisSection.firstChild);
        }
    }
}

function CollapseSection_Toggle(ID){
    var Link = document.getElementById(ID);
    var H = Link.parentNode;
    var Tag = H.tagName.toLowerCase();
    var Next = H.nextSibling;
    while(Next){
        if(Next.tagName){
            if(Next.tagName.toLowerCase() == Tag) break;
            if($(Next).hasClass("printfooter")) break;
            if(Next.tagName.toLowerCase() != "script"){
                if(Link.innerHTML == CollapseSection_Hide){
                    Next.style.display = "none";
                }else{
                    Next.style.display = "block";
                }
            }            
        }
        Next = Next.nextSibling;
    }
    if(Link.innerHTML ==CollapseSection_Hide){
        Link.innerHTML = CollapseSection_Show;
    }else{
        Link.innerHTML = CollapseSection_Hide;
    }
}