User:Lgd/common.js

/** * Accès immédiat au contenu des références et notes en bas de page * dans une fenêtre contextuelle. * auteur : http://fr.wikipedia.org/wiki/Utilisateur:Lgd * licence : MIT * * Utilise : http://fr.wikipedia.org/wiki/MediaWiki:Gadget-tooltipRef.css * * Paramétrage: ajouter var tooltipRefHover = true dans le common.js personnel * pour utiliser au survol plutôt qu'au clic */

var tooltipRef = function ($) { var backClass = ''; var fixOverflow = '.gallerytext, .thumbinner, h2, h3, h4, h5, h6, .overflow'; var msg_err1 = 'Erreur : note ou référence non trouvée.'; var msg_err2 = 'Erreur: entrée non trouvée dans la bibliographie.'; var msg_err3 = ' Cette fonctionnalité peut ne pas être disponible en mode édition si vous prévisualisez une section de page.'; var msg_close = 'Fermer'; var msg_go1 = 'Aller'; var msg_go1title = 'Aller à cette référence en fin de page'; var msg_go2 ='Aller à la bibliographie'; var tooltipRefTimer=false; function fixId(myid) { // replaces special characters in id name myid = myid.replace(/\[/g, "\\[").replace(/\]/g, "\\]"); return myid.replace(/(:|\.)/g,'\\$1'); } function closeNote(link) { var note=link.closest('span.tooltipRef'); note.prev('a.hasnote').removeClass('hasnote'); note.parents(fixOverflow).first.css('overflow','hidden'); note.remove; return false; } function openNote(ref) { $('.tooltipRef a.close').each(function{closeNote($(this));}); var id = ref.attr('href'); var note; var fallback; var idfix = fixId(id); if($(idfix).length != 0) { note = $(idfix).find('.reference-text').clone.addClass('tooltipRef'); //note.find(backClass).remove; note.find('[href^="#"]').click(function{       if($(this).is('.open')) {          $('.subnote').remove;          $(this).removeClass('open');          return false;        }        $('.subnote').remove;        $('.tooltipRef .open').removeClass('open');            var id2 = $(this).attr('href');        var more = $(''+msg_go2+'');        more.click(function{ closeNote($(this)); });       var note2;        id2 = fixId(id2);        if($(id2).length != 0) {          note2 = $(id2).clone.addClass('subnote').removeAttr('id');          var morep = $(' ');          morep.append(more);          note2.append(morep);        } else {          note2 = $(' '+msg_err2+' ');        }        note.append(note2);        $(this).addClass('open');        return false;      }); fallback = $(''+msg_go1+' '); fallback.click(function{       closeNote($(this));      }); } else { note = $(' '+msg_err1+' '); }   var offset=ref.offset.left; if(offset > 500){ note.addClass('noteleft'); }; var link=$('X'); link.click(function {     closeNote($(this));      return false;    }); var span=$(' '); span.prepend(fallback).append(link); note.prepend(span); ref.parent.append(note); ref.addClass('hasnote'); ref.parents(fixOverflow).first.css('overflow','visible'); return false; } if (typeof tooltipRefHover !== 'undefined' && tooltipRefHover) { $('sup.reference > a').mouseenter(function(event) {      openNote($(this));    }); $('sup.reference').mouseover(function {      clearTimeout(tooltipRefTimer);    }); $('sup.reference').mouseout(function {      tooltipRefTimer = setTimeout(function{ var ref = $(this).find('a').first; $('.hasnote').removeClass('hasnote'); ref.parents(fixOverflow).first.css('overflow','hidden'); $('.tooltipRef').remove; return false; },400)   });    $('sup.reference > a').click(function {      return false;    }); } else { $('sup.reference > a').click(function {     if($(this).is('.hasnote')) {        closeNote($(this).parent.find('.close'));return false;      }      openNote($(this))      return false;    }); } } $(document).ready(tooltipRef);