Utilisateur:Dr Brains/FonctionsUtilitaires.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.
//<source lang=javascript><pre><nowiki>

// Retrait d'une fonction "addOnloadHook"
if(typeOf(removeOnloadHook)=="undefined"){
     function removeOnloadHook(hookFunct) {
          for (var i = onloadFuncts.length; --i >= 0; ) {
               if (onloadFuncts[i] == hookFunct) {
                    onloadFuncts.splice(i, 1);
                    return;
               }
          }
     }
}

// Création d'une page spéciale inexistante : 
// * Change le titre de l'onglet : "Erreur" -> Titre de la page
// * Change le titre de la page : "Page spéciale inexistante" -> Titre de la page
// * Vide le contenu du "bodyContent" ou équivalement
// * Retourne l'élément "bodyContent" ou équivalement
 
if(typeOf(CreateNewSpecialPage)=="undefined"){
    function CreateNewSpecialPage(){
        if(mw.config.get('wgNamespaceNumber')!=-1) return false;
        try{ 
            var Title = document.getElementsByTagName('title')[0];
            Title.innerHTML = mw.config.get('wgTitle');  
            var TitlePage = document.getElementsByTagName('h1')[0];
            TitlePage.innerHTML = mw.config.get('wgTitle');  
            var Content = document.getElementById('bodyContent');                 // monobook, chick, myskin, simple, vector
            if(!Content) Content = document.getElementById('mw_contentholder');   // modern
            if(!Content) Content = document.getElementById('article');            // cologneblue, nostalgia, standard
            while(Content.firstChild){ Content.removeChild(Content.firstChild); } 
            return Content;
        }catch(e){
            return false;
        }
    }
}

// Récupère le contenu de l'élément "bodyContent" ou équivalent à l'intérieur d'un élément 

function GetPageContent(Element){
        if(!Element) Element = document;
        var AllDivs = Element.getElementsByTagName('div');
        var Content = false;
        var elementcount=0;
        while(elementcount<AllDivs.length){
                var ThisDiv = AllDivs[elementcount];
                var ThisDivId = ThisDiv.id;
                if(ThisDivId){
                        if((ThisDivId=='bodyContent')||(ThisDivId=='mw_contentholder')||(ThisDivId=='article')){
                                Content = ThisDiv.innerHTML;
                                break;
                        }
                }
                elementcount++
        }
        return Content;
}

// Récupère l'élément "bodyContent" ou équivalent à l'intérieur d'un élément 

function GetPageContentNode(Element){
        if(!Element) Element = document;
        var AllDivs = Element.getElementsByTagName('div');
        var ContentNode = false;
        var elementcount=0;
        while(elementcount<AllDivs.length){
                var ThisDiv = AllDivs[elementcount];
                var ThisDivId = ThisDiv.id;
                if(ThisDivId){
                        if((ThisDivId=='bodyContent')||(ThisDivId=='mw_contentholder')||(ThisDivId=='article')){
                                ContentNode = ThisDiv;
                                break;
                        }
                }
                elementcount++
        }
        return ContentNode;
}

// Récupère le contenu d'une page et l'insère dans un élément (choix de requête synchrone ou asynchrone)

function GetPageContent(PageName, Element, Mode){
        if(!Mode) Mode = false;
        if(!Element) Element = document;
        if(!PageName) PageName = mw.config.get('wgPageName').replace(/_/g, " ");
        var Adresse = mw.config.get('wgServer')+mw.config.get('wgScript')+'?title='+encodeURIComponent(PageName)
        var Requete = sajax_init_object();
        if(Mode){
                Requete.open("GET", Adresse, true);
                Requete.onreadystatechange = function() {
                        if(Requete.readyState != 4)  return; 
                        var ElementTraitement = document.createElement('div');
                        ElementTraitement.innerHTML = Requete.responseText;
                        Element.innerHTML = GetPageContent(ElementTraitement);
                }
                Requete.send(null);
        }else{
                Requete.open("GET", Adresse, false);
                Requete.send(null);
                if (Requete.readyState == 4){
                        var ElementTraitement = document.createElement('div');
                        ElementTraitement.innerHTML = Requete.responseText;
                        Element.innerHTML = GetPageContent(ElementTraitement);

                }
        }
}

// Effectue une requête API et renvoie le résultat XML (choix de requête synchrone ou asynchrone)

function XMLAPIRequest(Adresse, Mode){
        if(!Adresse) return;
        if(!Mode) Mode = false;
        var Requete = sajax_init_object();
        var XML = false;
        if(Mode){
                Requete.open("GET", Adresse, true);
                Requete.onreadystatechange = function() {
                        if(Requete.readyState != 4)  return; 
                        XML = Requete.responseXML;
                        return XML;
                }
                Requete.send(null);
        }else{
                Requete.open("GET", Adresse, false);
                Requete.send(null);
                if (Requete.readyState == 4){
                        XML = Requete.responseXML;
                        return XML;
                }
        }
}

//</nowiki></pre></source>