מדיה ויקי:סקריפטים/48.js
קפיצה לניווט
קפיצה לחיפוש
הערה: לאחר הפרסום, ייתכן שיהיה צורך לנקות את זיכרון המטמון (cache) של הדפדפן כדי להבחין בשינויים.
- פיירפוקס / ספארי: להחזיק את המקש Shift בעת לחיצה על טעינה מחדש (Reload) או ללחוץ על צירוף המקשים Ctrl-F5 או Ctrl-R (במחשב מק: ⌘-R).
- גוגל כרום: ללחוץ על צירוף המקשים Ctrl-Shift-R (במחשב מק: ⌘-Shift-R).
- אדג': להחזיק את המקש Ctrl בעת לחיצה על רענן (Refresh) או ללחוץ על צירוף המקשים Ctrl-F5.
// הוספת כפתורים ליצירת קישורים לסעיף ליד כותרת הסעיף // [[:fr:mediawiki:Gadget-AncreTitres.js]] :מבוסס על /* התאמה לעברית על ידי [[משתמש:חזרתי]] */ /** * AncreTitres * * Cette fonction fournit un lien vers une section de page en cliquant * sur le lien [URL] ou [[lien]] à droite du titre de section. * * Auteurs : Pabix, Phe, Bayo, Chphe, Arkanosis, Mah3110, Ash_Crow * {{Projet:JavaScript/Script|AncreTitres}} */ /* global $, mw */ /* eslint-env browser */ // <nowiki> mw.loader.using( [ 'mediawiki.util', 'user' ], function () { 'use strict'; $( function ( $ ) { var lang = mw.config.get( 'wgUserLanguage' ), messages = { en: { 'ancretitres-anchor-name': '[URL]', 'ancretitres-internal-link-name': '[[Link]]', 'ancretitres-description': 'Get an URL to this section', 'ancretitres-int-description': 'Get an internal link to this section', 'ancretitres-notif-title': 'Text copied to clipboard', 'ancretitres-notif-error': 'Could not copy to clipboard' }, fr: { 'ancretitres-anchor-name': '[URL]', 'ancretitres-internal-link-name': '[[Lien]]', 'ancretitres-description': 'Obtenir une URL vers cette section', 'ancretitres-int-description': 'Obtenir un lien interne vers cette section', 'ancretitres-notif-title': 'Texte copié dans le presse-papiers', 'ancretitres-notif-error': 'Impossible de copier dans le presse-papiers' }, he: { 'ancretitres-anchor-name': ' › ', 'ancretitres-internal-link-name': ' » ', 'ancretitres-internal-link-name-1': ' ၐ ', 'ancretitres-description': 'קישור חיצוני לפסקה זו', 'ancretitres-int-description': 'קישור פנימי לפסקה זו', 'ancretitres-int-description-1': 'קישור פנימי לפסקה זו עם כותרת שונה', 'ancretitres-notif-title': 'הקישור הועתק ללוח', 'ancretitres-notif-error': 'לא ניתן להעתיק ללוח' } }, options = { afficheE: true, afficheI: true, afficheK: true }, element = '.mw-heading'; mw.messages.set( messages.en ); if ( lang !== 'en' && lang in messages ) { mw.messages.set( messages[ lang ] ); } // https://stackoverflow.com/questions/400212/how-do-i-copy-to-the-clipboard-in-javascript/30810322#30810322 function copyTextToClipboard( text ) { var textArea = document.createElement( 'textarea' ); textArea.style.position = 'fixed'; textArea.style.top = 0; textArea.style.left = 0; textArea.style.width = '2em'; textArea.style.height = '2em'; textArea.style.padding = 0; textArea.style.border = 'none'; textArea.style.outline = 'none'; textArea.style.boxShadow = 'none'; textArea.style.background = 'transparent'; textArea.value = text; document.body.appendChild( textArea ); textArea.focus(); textArea.select(); var copySuccess; try { document.execCommand( 'copy' ); copySuccess = true; } catch ( e ) { copySuccess = false; } document.body.removeChild( textArea ); if ( copySuccess ) { mw.notify( '', { title: mw.msg( 'ancretitres-notif-title' ), tag: 'ancretitres', type: 'info', autoHide: true } ); } else { mw.notify( mw.msg( 'ancretitres-notif-error' ), { tag: 'ancretitres', type: 'error', autoHide: true } ); } } if ( typeof window.AncreTitres !== 'undefined' ) { $.extend( options, window.AncreTitres ); } if ( !options.afficheI && !options.afficheE && !options.afficheK ) { return; } $( element ).each( function ( _, headline ) { var $span = $( '<span>' ) .addClass( 'noprint ancretitres' ) .css( { 'font-size': 'small', 'font-weight': 'normal', 'user-select': 'none' // jQuery se charge d'ajouter un vendor prefix si nécessaire } ) .html('‏'), section = $(headline).find('h2, h3, h4').attr('id'); if ( options.afficheK ) { var $linkK = $( '<a href="#" title="' + mw.msg( 'ancretitres-int-description-1' ) + '">' + mw.msg( 'ancretitres-internal-link-name-1' ) + '</a>' ).click( function ( e ) { e.preventDefault(); var escapedAnchor = section // escaping caractères spéciaux HTML // (partiel, '"& ne sont pas escapés pour ne pas dégrader inutilement la lisibilité du lien) .replace( /</g, '<' ) .replace( />/g, '>' ) // escaping caractères spéciaux MediaWiki .replace( /\[/g, '[' ) .replace( /\]/g, ']' ) .replace( /\{/g, '{' ) .replace( /\|/g, '|' ) .replace( /\}/g, '}' ); var outputText = '[[' + ( mw.config.get( 'wgPageName' ) + '#' + escapedAnchor ).replace( /_/g, ' ' ) + '|כותרת שונה]]'; copyTextToClipboard( outputText ); } ); $span.append( ' ', $linkK ); } if ( options.afficheI ) { var $linkI = $( '<a href="#" title="' + mw.msg( 'ancretitres-int-description' ) + '">' + mw.msg( 'ancretitres-internal-link-name' ) + '</a>' ).click( function ( e ) { e.preventDefault(); var escapedAnchor = section // escaping caractères spéciaux HTML // (partiel, '"& ne sont pas escapés pour ne pas dégrader inutilement la lisibilité du lien) .replace( /</g, '<' ) .replace( />/g, '>' ) // escaping caractères spéciaux MediaWiki .replace( /\[/g, '[' ) .replace( /\]/g, ']' ) .replace( /\{/g, '{' ) .replace( /\|/g, '|' ) .replace( /\}/g, '}' ); var outputText = '[[' + ( mw.config.get( 'wgPageName' ) + '#' + escapedAnchor ).replace( /_/g, ' ' ) + ']]'; copyTextToClipboard( outputText ); } ); $span.append( ' ', $linkI ); } if ( options.afficheE ) { var $linkE = $( '<a href="#" title="' + mw.msg( 'ancretitres-description' ) + '">' + mw.msg( 'ancretitres-anchor-name' ) + '</a>' ).click( function ( e ) { e.preventDefault(); var outputText = 'https:' + mw.config.get( 'wgServer' ) + mw.util.getUrl() + '#' + section; copyTextToClipboard( outputText ); } ); $span.append( ' ', $linkE ); } $( headline ).find('.mw-editsection').after( $span ); } ); } ); } );