MediaWiki:Gadget-AncreTitres.js

Une page de Wikiversité, la communauté pédagogique libre.

Note : après avoir publié vos modifications, il se peut que vous deviez forcer le rechargement complet du cache de votre navigateur pour voir les changements.

  • Firefox / Safari : maintenez la touche Maj (Shift) en cliquant sur le bouton Actualiser ou appuyez sur Ctrl + F5 ou Ctrl + R (⌘ + R sur un Mac).
  • Google Chrome : appuyez sur Ctrl + Maj + R (⌘ + Shift + R sur un Mac).
  • Internet Explorer / Edge : maintenez la touche Ctrl en cliquant sur le bouton Actualiser ou pressez Ctrl + F5.
  • Opera : appuyez sur Ctrl + F5.
/**
 * AncreTitres
 *
 * Cette fonction fournit un lien vers une section de page en cliquant
 * sur le lien [ancre] à droite du titre de section.
 *
 * Auteurs : Pabix, Phe, Bayo -- Correctif apporté par Chphe
 * Date de dernière révision : 26 septembre 2009
 * [[Catégorie:MediaWiki:Fonction Monobook en JavaScript|AncreTitres]]
 */
 
var AncreTitres={
nom_ancre : "[URL]",
nom_lien_interne : "[[lien]]",
description : "Obtenir une URL vers cette section",
descinterne : "Obtenir un [[Lien#interne]]",
linkcolor : "",
fontSize : "xx-small",
fontWeight : "normal",
afficheE : true,
afficheI : true,
}
function ancrer(){
	if (!document.getElementById('content')) return;
	var titres = document.getElementsByTagName("span");
	var i = 0;
	var titre_courant;
        if (!AncreTitres.afficheI && !AncreTitres.afficheE) return;
	for (i = 0 ; i < titres.length ; i++){
		var titre_courant = titres[i].parentNode;	
		if (!(titres[i].className.match(/mw-headline/gi))) continue;
		var ancre_nom = titres[i].id;
 
		var small;
		var link;
 
		span = document.createElement('span');
		with(span ) {
			if (AncreTitres.linkcolor != "") style.color=AncreTitres.linkcolor;
			style.fontSize=AncreTitres.fontSize;
			style.fontWeight=AncreTitres.fontWeight;
			className = 'noprint';
		}
 
		if (AncreTitres.afficheE) {
			link = document.createElement('a');
			with(link) {
				innerHTML=AncreTitres.nom_ancre;
				title=AncreTitres.description;
				setAttribute("ancre", mw.config.get('wgServer') + "/w/index.php?title="
					+ mw.config.get('wgPageName') + "#" + ancre_nom
				);
				setAttribute("onclick", "window.prompt("
					+ "'Lien : ', this.getAttribute('ancre'));"
				);
                        	setAttribute("href", "javascript:;");										}
			span.appendChild(document.createTextNode(' '));
			span.appendChild(link);
		}
		if (AncreTitres.afficheI) {
			link = document.createElement('a');
			with(link) {
				innerHTML=AncreTitres.nom_lien_interne;
				title=AncreTitres.descinterne;
				setAttribute("ancre", "[[" + mw.config.get('wgPageName') + "#" + ancre_nom + "]]");
				setAttribute("onclick", "window.prompt("
					+ "'Lien : ', this.getAttribute('ancre'));"
				);
                        	setAttribute("href", "javascript:;");
			}
			span.appendChild(document.createTextNode(' '));
			span.appendChild(link);
		}
		titre_courant.appendChild(span);
	}
}
$(ancrer);