Aujourd’hui,
MediaWiki:Gadget-tooltipRef.js est un sujet qui a retenu l’attention d’un large spectre de la société. Que ce soit en raison de son impact sur l'industrie, de sa pertinence dans la culture populaire ou de son influence dans le domaine scientifique,
MediaWiki:Gadget-tooltipRef.js a réussi à franchir les barrières de genre, d'âge et de nationalité. Dans cet article, nous explorerons les différentes facettes de
MediaWiki:Gadget-tooltipRef.js et son importance dans le monde contemporain. De son origine à ses projections futures, nous approfondirons une analyse approfondie qui nous permettra de mieux comprendre la pertinence de
MediaWiki:Gadget-tooltipRef.js dans notre société actuelle.
/**
* Accès immédiat au contenu des références et notes en bas de page
* dans une fenêtre contextuelle.
* auteur : https://fr.wikipedia.orghttps://wikifreehand.com/fr/Utilisateur:Lgd
* licence : MIT
*
* Utilise : https://fr.wikipedia.orghttps://wikifreehand.com/fr/MediaWiki:Gadget-tooltipRef.css
*
* Paramétrage: ajouter window.tooltipRefHover = true; dans le common.js personnel
* pour utiliser au survol plutôt qu'au clic
*
* {{Catégorisation JS|TooltipRef}}
*/
window.tooltipRefEnabled = true;
// pour ne pas charger en addition à ]
if ( typeof referenceTooltipsEnabled === 'undefined' ) {
mw.loader.using( 'user', function () {
// si l'état est null, cela signifie que ce gadget n'est plus listé dans les définitions (ou a été renommé en oubliant de mettre à jour le nom ici)
// si l'état est resté sur registered, cela signifie que l'utilisateur charge ce gadget autrement que par le ResourceLoader (importScript(), etc.)
var state = mw.loader.getState( 'ext.gadget.tooltipRef' );
if ( !state || state === 'registered' ) {
importStylesheet( 'MediaWiki:Gadget-tooltipRef.css' );
}
var firstRun = true;
mw.hook( 'wikipage.content' ).add( function ( $content ) {
var backClass = '.mw-cite-backlink';
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_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
return '#' + $.escapeSelector( myid.substr( 1 ) );
}
function closeNote() {
$content.find( '.hasnote' ).removeClass( 'hasnote' );
$( '.tooltipRef' ).remove(); // ne se trouve pas dans le #mw-content-text, mais à la fin du <body>
}
function closeNoteAfterDelay() {
tooltipRefTimer = setTimeout( closeNote, 400 );
}
function cancelDelayedNoteClosure() {
clearTimeout( tooltipRefTimer );
}
function openNote( $ref ) {
closeNote();
var id = $ref.attr( 'href' );
var $note;
var $fallback;
var idfix = fixId( id );
if ( $( idfix ).length !== 0 ) {
$note = $( idfix ).clone();
// copy computed styles to clone as inline styles
var $links1 = $( idfix ).find( 'a.external' );
var $links2 = $note.find( 'a.external' );
$links1.each( function ( i, elm ) {
var computed = $( elm ).css( );
$links2.eq( i ).css( computed );
} );
$note.removeAttr( 'id' ).addClass( 'tooltipRef' );
$note.find( backClass ).remove();
$note.find( '' ).click( function () {
if ( $( this ).is( '.open' ) ) {
$note.find( '.subnote' ).remove();
$( this ).removeClass( 'open' );
return false;
}
$note.find( '.subnote' ).remove();
$note.find( '.open' ).removeClass( 'open' );
var id2 = $( this ).attr( 'href' );
var $more = $( '<a href="' + mw.html.escape( id2 ) + '">' + msg_go2 + '</a>' );
$more.click( closeNote );
var $note2;
id2 = fixId( id2 );
if ( $( id2 ).length !== 0) {
$note2 = $( id2 ).clone().addClass( 'subnote' ).removeAttr( 'id' );
var $morep = $( '<p class="more"></p>' );
$morep.append( $more );
$note2.append( $morep );
} else {
$note2 = $( '<span class="subnote">' + msg_err2 + '</span>' );
}
$note.append( $note2 );
$( this ).addClass( 'open' );
return false;
} );
$fallback = $( '<a href="' + mw.html.escape( id ) + '" class="go" title="' + msg_go1title + '">' + msg_go1 + '</a> ' );
$fallback.click( closeNote );
} else {
$note = $( '<li class="tooltipRef">' + msg_err1 + '</li>' );
}
var $link = $( '<a href="#" class="close" title="' + msg_close + '">X</a>' );
$link.click( function () {
closeNote();
return false;
} );
var $span = $( '<span class="actions"> </span>' );
$span.prepend( $fallback ).append( $link );
$note.prepend( $span );
if ( typeof tooltipRefHover !== 'undefined' && tooltipRefHover ) {
$note.mouseover( cancelDelayedNoteClosure );
$note.mouseout( closeNoteAfterDelay );
}
$( 'body' ).append( $note );
var offset = $ref.offset();
$note.offset( {
top : offset.top + $ref.height(),
left: offset.left > 500 ? offset.left - $note.outerWidth() : offset.left
} );
$ref.addClass( 'hasnote' );
return false;
}
// en cas de rechargement dynamique du contenu de la page (fonctionnalité d'aperçu rapide)
if ( !firstRun ) {
$( '.tooltipRef' ).remove();
}
firstRun = false;
if ( typeof tooltipRefHover !== 'undefined' && tooltipRefHover ) {
$content.find( 'sup.reference > a' ).mouseenter( function () {
openNote( $ ( this ) );
} );
$content.find( 'sup.reference' ).mouseover( cancelDelayedNoteClosure );
$content.find( 'sup.reference' ).mouseout( closeNoteAfterDelay );
$content.find( 'sup.reference > a' ).click( function () {
return false;
} );
} else {
$content.find( 'sup.reference > a' ).click( function () {
if ( $( this ).is( '.hasnote' ) ) {
closeNote();
return false;
}
openNote( $( this ) );
return false;
} );
}
} );
} );
}