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