Utilisateur:Flo/lib.js
Un article de Wikipédia, l'encyclopédie libre.
Note : Après avoir publié la page, vous devrez forcer son rechargement pour voir les changements : Mozilla / Konqueror / Firefox : Shift-Ctrl-R, Internet Explorer / Opera : Ctrl-F5, Safari : Cmd-R.
function nouvelÉlément(nom) { return document.createElement(nom); } function nouvelElément(nom) { return nouvelÉlément(nom); } function nouveauTexte(texte) { return document.createTextNode(texte); } function nouvelAttribut(nom) { return document.createAttribute(nom); } function nouveauLien(href,label) { var a = nouvelÉlément("a"); var h = nouvelAttribut("href"); h.value = href; a.setAttributeNode(h); a.title = label; a.appendChild(nouveauTexte(label)); return a; } function nouveauLienEncapsulé(href,label) { var li = nouvelÉlément("li"); li.appendChild(nouveauLien(href,label)); return li; } function $(id) { if(document.getElementById) return document.getElementById(id); if(document.all) return document.all[id]; return false; } function $$(name,obj) { if (!obj) var obj = document; return obj.getElementsByTagName(name); } function getElementsByTagNames(list,obj) { // http://www.quirksmode.org/dom/getElementsByTagNames.html if (!obj) var obj = document; var tagNames = list.split(','); var resultArray = new Array(); for (var i=0;i<tagNames.length;i++) { var tags = obj.getElementsByTagName(tagNames[i]); for (var j=0;j<tags.length;j++) { resultArray.push(tags[j]); } } var testNode = resultArray[0]; if (!testNode) return []; if (testNode.sourceIndex) { resultArray.sort(function (a,b) { return a.sourceIndex - b.sourceIndex; }); } else if (testNode.compareDocumentPosition) { resultArray.sort(function (a,b) { return 3 - (a.compareDocumentPosition(b) & 6); }); } return resultArray; } $$$ = getElementsByTagNames; function sprintr(t) { s = "Array\n(\n"; for(i in t) { s += "[" + i + "] =>" + t[i] + "\n"; } return s; } function hideShow(o) { if( o.initMouseEvent ) o = this.lastChild; // si le paramètre est un évènement clic if( o.style.display == "" || o.style.display == "block" ){ o.style.display = "none"; } else if( o.style.display == "none" ) { o.style.display = "block"; } } /* Ajoute un lien devant les titres, ciblant l'ancre correspondante * pour obtenir facilement l'URL de l'ancre. * JavaScript 1.6 requis (p.ex. Firefox 1.5+). */ function ancres() { var tagNames = ['h2','h3','h4','h5','h6']; var classeLien = "lien-ancre-hn"; var texteLien = "§ "; for each(var tag in tagNames) { var headings = $$( tag, $("content") ); //var headings = getElementsByTagNames(tagNames.join(','),$("content")); for each(var h in headings) { if( !(h && h.previousSibling && h.previousSibling.previousSibling && h.previousSibling.previousSibling.lastChild) ) continue; var id = h.previousSibling.previousSibling.lastChild.id; // \n <p> <a> var spans = $$( "span",h ); for each( var span in spans ) { if ( span.className != "mw-headline" ) continue; var a = nouvelÉlément("a"); a.href = "#" + id; a.title = a.href; a.className = classeLien; a.appendChild( nouveauTexte(texteLien) ); span.insertBefore(a,span.firstChild); } } } } function tex(){ var images = $$("img"); for each(var i in images) { if( !i.className || i.className != "tex" ) continue; i.title = i.alt; } } function liensRouges() { if ( document.title.indexOf('Pages liées à') == 0 ) return; var A = $$("a"); for each(a in A) { if( !a.className || a.className != "new" ) continue; a.title = a.title.substring(0,a.title.indexOf(" (page inexistante)")); a.href = "/wiki/Special:Whatlinkshere/" + a.title; } } function nsSearch() { var form = $("searchform"); var div = form.firstChild; while (div.firstChild) { div.removeChild(div.firstChild); } exec = nouvelÉlément( "button" ); exec.className = "searchButton"; exec.onclick = function() { try{ champ = $("searchInput").value.replace(/(\d*)\^(\d*)/g,"Math.pow($1,$2)"); alert( eval(champ) ) ; } catch(e) { alert( "Expression mal formée !" ); } return false; } exec.appendChild( nouvelÉlément("img") ); exec.lastChild.src = "http://upload.wikimedia.org/wikipedia/commons/thumb/8/83/Gtk-execute.svg/60px-Gtk-execute.svg.png"; var input = nouvelÉlément("input"); input.type = "text"; input.id = "searchInput"; input.name = "search"; searchGoButton = nouvelÉlément("button"); searchGoButton.className = "searchButton"; searchGoButton.id = "searchGoButton"; searchGoButton.appendChild(nouvelÉlément("img")); searchGoButton.lastChild.src = "http://upload.wikimedia.org/wikipedia/commons/thumb/f/f1/Exquisite-kfind.png/60px-Exquisite-kfind.png"; mw_searchButton = nouvelÉlément("button"); mw_searchButton.className = "searchButton"; mw_searchButton.id = "mw-searchButton"; mw_searchButton.onclick = function(){ $("searchform").target = "search"; $("searchform").submit(); $("searchform").target = ""; return false; } mw_searchButton.appendChild(nouvelÉlément("img")); mw_searchButton.lastChild.src = "http://upload.wikimedia.org/wikipedia/commons/thumb/6/6a/Gtk-copy.svg/60px-Gtk-copy.svg.png"; div.appendChild(input); div.appendChild(searchGoButton); div.appendChild(mw_searchButton); div.appendChild(exec); } function plieBoîtes() { var boxes = ["p-navigation", "p-Contribuer", "p-tb", "p-search", "p-lang"]; for each(box in boxes) { if( !$(box) ) continue; var h = $$("h5",$(box))[0]; h.onclick = function(){ var pBody = $$("div",this.parentNode)[0]; hideShow(pBody); } } } function déplaceBoîtes() { var boxes = ["p-navigation", "p-Contribuer"]; for each(box in boxes) { var boîte = $(box); boîte.parentNode.appendChild(boîte); } } function contributions() { //ajoute un onglet ciblant les contributions d'un utilisateur if ( document.title.indexOf('Utilisateur:') < 0 ) return; var reg = new RegExp("Utilisateur:([^/]*)","gi"); var nom = reg.exec( $$("H1")[0].firstChild.nodeValue )[1]; var ul = $$( "ul", $("p-cactions") )[0]; var li = nouveauLienEncapsulé("/wiki/Special:Contributions/"+nom,"Contributions"); ul.appendChild(li); ; } // Onglet Editcount // Auteur : Educa33e /Suite à demande Fred.th? le 26 mars 2006, sur le bistro. // Cette fonction ajoute un onglet "editcount" à partir de la page special:Contributions // d'un utilisateur, afin d'accèder directement au lien (site externe) des statistiques // d'édition de ce contributeur. // //(refonte en DOM par Flo) function addEditCountButton() { if ( document.title.indexOf('Contributions de cet utilisateur') < 0 ) return; var name = $$( "a",$("contentSub") )[0].innerHTML; var ul = $$( "ul", $("p-cactions") )[0]; var li = nouveauLienEncapsulé( "http://tools.wikimedia.de/~interiot/cgi-bin/count_edits?user="+escape(name)+"&dbname=frwiki_p", "Editcount"); ul.appendChild(li); ; } function installWikEd() { var wikEd = document.createElement("script"); wikEd.type = "text/javascript"; wikEd.src="http://en.wikipedia.org/w/index.php?title=User:Cacycle/wikEd.js" + "&action=raw&ctype=text/javascript&dontcountme=s"; $$("head")[0].appendChild(wikEd); } function nouveauxOutilsPerso() { var ul = $$( "ul", $("p-personal") ); ul[0].appendChild( nouveauLienEncapsulé("/wiki/Special:Mypage/maths","/maths") ); ul[0].appendChild( nouveauLienEncapsulé("/wiki/Special:Mypage/monobook.css","/monobook.css") ); ul[0].appendChild( nouveauLienEncapsulé("/wiki/Special:Mypage/monobook.js","/monobook.js") ); ul[0].appendChild( nouveauLienEncapsulé("/wiki/Special:Mypage/outils.js","/outils.js") ); ul[0].appendChild( nouveauLienEncapsulé("/wiki/Special:Mypage/lib.js","/lib.js") ); ul[0].appendChild( nouveauLienEncapsulé("http://commons.wikimedia.org/wiki/Special:Watchlist","Liste de suivi Commons")); } function boîteàOutils() { var UL = $$( "ul", $("p-tb") )[0]; UL.insertBefore( $("n-help"), $("t-upload") ); var ul = nouvelÉlément("UL"); ul.style.display = "none"; ul.appendChild( nouveauLienEncapsulé("/wiki/Aide:Formules_TeX","Formules TeX") ); ul.appendChild( nouveauLienEncapsulé("/wiki/Aide:Liste_de_caractères_spéciaux","Caractères spéciaux") ); ul.appendChild( nouveauLienEncapsulé("/wiki/Wikipédia:Conventions_typographiques","Conventions typo") ); ul.appendChild( nouveauLienEncapsulé("/wiki/Aide:Liste_des_modèles_spéciaux","Modèles spéciaux") ); ul.appendChild( $("t-upload") ); $("n-help").appendChild( ul ); $("n-help").className = "menuDeroulant"; $("n-help").onclick =hideShow;//function(){ hideShow(this.lastChild) }; ul = nouvelÉlément("UL"); ul.style.display = "none"; ul.appendChild( $("n-randompage") ); ul.appendChild( nouveauLienEncapsulé("/wiki/Special:Search","Recherche") ); ul.appendChild( nouveauLienEncapsulé("/wiki/Special:ExpandTemplates","Expansion des modèles") ); ul.appendChild( nouveauLienEncapsulé("/wiki/Special:Contributions","Contributions") ); if($("t-recentchangeslinked")) ul.appendChild( $("t-recentchangeslinked") ); $("t-specialpages").appendChild( ul ); $("t-specialpages").className = "menuDeroulant"; $("t-specialpages").onclick = hideShow; }