MediaWiki:Common.js
Note : après avoir enregistré tes préférences, tu devras forcer son rechargement complet en ignorant le contenu actuel du cache de ton explorateur pour voir les changements : Mozilla / Firefox / Konqueror / Safari : maintiens la touche Majuscule (Shift) en cliquant le bouton Actualiser (Reload,) ou presse Maj-Ctrl-R (Maj-Cmd-R sur Apple Mac) ; Internet Explorer / Opera : maintiens la touche Ctrl en cliquant le bouton Actualiser ou presse Ctrl-F5.
/* Tout JavaScript ici sera chargé avec chaque page accédée par n’importe quel utilisateur. */ // ============================================================ //////////// FONCTION : .indexOf (Patch IE) ////////////// if (!Array.indexOf) { Array.prototype.indexOf = function(obj,idx) { var len = this.length; if (len == 0) return -1; if (!idx) idx = 0; while (idx < 0) idx = len + idx; for (var i = 0; i < len; i++) if (this[i] == obj) return i; return -1; } } // ============================================================ // ================================================================================================== //////////// FONCTIONS RELATIVES AUX COOKIES ////////////// function setCookie (cookieName, cookieValue, expires, path) { document.cookie = escape(cookieName) + '=' + escape(cookieValue) + (expires ? '; EXPIRES=' + expires.toGMTString() : '') + "; PATH=/" ; } function getCookie(cookieName) { var cookieValue = null; var posName = document.cookie.indexOf(escape(cookieName) + '=' ); if (posName != -1) { var posValue = posName + (escape(cookieName) + '=' ).length; var endPos = document.cookie.indexOf(';', posValue) ; if (endPos != -1) { cookieValue = unescape(document.cookie.substring(posValue, endPos)); } else { cookieValue = unescape(document.cookie.substring(posValue)); } } return decodeURIComponent(cookieValue); } // ============================================================ // ============================================================ //////////// FONCTIONS : MANIPULATION DE CLASSES ////////////// function hasClass(node, className) { if (node.className == className) { return true; } var reg = new RegExp('(^| )'+ className +'($| )') if (reg.test(node.className)) { return true; } return false; } function addClass(node, className) { if (hasClass(node, className)) { return false; } node.className += ' '+ className; return true; } function removeClass(node, className) { if (!hasClass(node, className)) { return false; } node.className = eregReplace('(^|\\s+)'+ className +'($|\\s+)', ' ', node.className); return true; } function eregReplace(search, replace, subject) { return subject.replace(new RegExp(search,'g'), replace); } // ============================================================ //////////// FONCTION : RECUPERE LE CONTENU TEXTUEL D'UN ELEMENT ////////////// function getTextContent(oNode) { if (typeof(oNode.textContent)!="undefined") {return oNode.textContent;} switch (oNode.nodeType) { case 3: // TEXT_NODE case 4: // CDATA_SECTION_NODE return oNode.nodeValue; break; case 7: // PROCESSING_INSTRUCTION_NODE case 8: // COMMENT_NODE if (getTextContent.caller!=getTextContent) { return oNode.nodeValue; } break; case 9: // DOCUMENT_NODE case 10: // DOCUMENT_TYPE_NODE case 12: // NOTATION_NODE return null; break; } var _textContent = ""; oNode = oNode.firstChild; while (oNode) { _textContent += getTextContent(oNode); oNode = oNode.nextSibling; } return _textContent; } // =============================================== // =============================================== //////////// FONCTION : INSERE UN ELEMENT APRES UN ELEMENT DE REFERENCE ////////////// function insertAfter(element, reference) { if(reference.nextSibling!=null){ reference.parentNode.insertBefore(element, reference.nextSibling); }else{ reference.parentNode.appendChild(element); } } // =============================================== // ============================================================================ ///////////////////////////////// Évite le double-post dans les pages de discussion LQT addOnloadHook( function(){ var wpSave = document.getElementById('wpSave'); if(wpSave){ wpSave.onclick = function(){ document.getElementById('wpSave').submit(); document.getElementById('wpSave').disabled = "disabled"; } } });/////////////////////////////// // =========================================================================== // =========================================================================== //////////////////////////////////////////////////// Patch extension WhosOnline function WhosOnline_CheckNewPage(position){ var ListePresents = document.getElementById('WhosOnlineList'); if(!ListePresents) return; if(!position) position=0; var Lien = ListePresents.getElementsByTagName('a')[position]; if(!Lien) return; var LienHref = Lien.href; LienHref = LienHref.split(wgServer).join('').split('/wiki/').join(''); Requete = sajax_init_object(); var url = wgServer+'/w/api.php?action=query&redirects&titles='+LienHref; Requete.open('GET',url, true); Requete.send(null); Requete.onreadystatechange = function(){ if((Requete.readyState == 4)&&(Requete.status == 200)){ var Reponse = document.createElement('div'); Reponse.innerHTML = Requete.responseText; //---------------------------------------------------------------------------- Partie modifiée var Spans = Reponse.getElementsByTagName('span'); for(a=0;a<Spans.length;a++){ var SpanHTML = Spans[a].innerHTML; if(SpanHTML.indexOf('missing=""')!=-1){ Lien.className = "new"; } } //------------------------------------------------------------------------------ WhosOnline_CheckNewPage((position+1)); } } } addOnloadHook(WhosOnline_CheckNewPage); // ===============================================