Js
نکته: پس از ذخیره کردن ممکن است برای دیدن تغییرات نیاز باشد که حافظهٔ نهانی مرورگر خود را پاک کنید.
فایرفاکس / سافاری: کلید Shift را نگه دارید و روی دکمهٔ Reload کلیک کنید، یا کلیدهای Ctrl-F5 یا Ctrl-R را با هم فشار دهید (در رایانههای اپل مکینتاش کلیدهای ⌘-R) گوگل کروم: کلیدهای Ctrl+Shift+R را با هم فشار دهید (در رایانههای اپل مکینتاش کلیدهای ⌘-Shift-R) اینترنت اکسپلورر: کلید Ctrl را نگهدارید و روی دکمهٔ Refresh کلیک کنید، یا کلیدهای Ctrl-F5 را با هم فشار دهید اپرا: بروید به Menu → Settings (Opera → Preferences on a Mac) and then to Privacy & security → Clear browsing data → Cached images and files.
/**
* EditTools support: add a selector, change <a> into buttons. * The special characters to insert are defined at MediaWiki:Edittools. * * @author Arnomane, 2006 (on the commons.wikimedia.org/wiki/MediaWiki:Edittools.js) * @author Kaganer, 2007 (adapting to www.mediawiki.org) * @author Krinkle, 2012 * @source www.mediawiki.org/wiki/MediaWiki:Gadget-Edittools.js * @revision 2012-02-29 */
/*jslint browser: true*/ /*global jQuery, mediaWiki*/ (function ($, mw) { "use strict";
var conf, editTools, $sections;
conf = { initialSubset: window.EditTools_initial_subset === undefined ? window.EditTools_initial_subset : 0 };
editTools = {
/** * Creates the selector */ setup: function () { var $container, $select, initial;
$container = $('#mw-edittools-charinsert'); if (!$container.length) { return; } $sections = $container.find('.mw-edittools-section'); if ($sections.length <= 1) { // Only care if there is more than one return; }
$select = $('<select>').css({'display': 'inline','float':'right','margin':'5px'});
initial = conf.initialSubset; if (isNaN(initial) || initial < 0 || initial >= $select.length) { initial = 0; }
$sections.each(function (i, el) { var $section, sectionTitle, $option;
$section = $(el); sectionTitle = $section.data('sectionTitle');
$option = $('<option>') .text(sectionTitle) .prop('value', i) .prop('selected', i === initial);
$select.append($option); });
$select.change(editTools.handleOnchange); $container.prepend($select);
editTools.chooseSection(initial); },
/** * Handle onchange event of the <select> * * @context {Element} * @param e {jQuery.Event} */ handleOnchange: function () { editTools.chooseSection(Number($(this).val()));
return true; },
/** * Toggle the currently visible section * * @param sectionNr {Number} * @param setFocus {Boolean} */ chooseSection: function (sectionNr) { var $choise = $sections.eq(sectionNr); if ($choise.length !== 1) { return; }
// Making these buttons is a little slow, // If we made them all at once the browser would hang // for over 2 seconds, so instead we're doing it on-demand // for each section. No need to do it twice thoguh, so remember // in data whether it was done already if (!$choise.data('charInsert.buttonsMade')) { $choise.data('charInsert.buttonsMade', true); editTools.makeButtons($choise); }
$choise.show(); $sections.not($choise).hide(); },
/** * Convert the <a onclick> links to buttons in a given section. * * @param $section {jQuery} */ makeButtons: function ($section) { var $links;
if (!$section.length) { return; }
$links = $section.find('a'); $links.each(function (i, a) { var $a, $button, start, end; $a = $(a); $button = $( '<input>' ).attr( 'type', 'button' ); start = $a.data( 'mw-charinsert-start' ); end = $a.data( 'mw-charinsert-end' ); if ( start !== undefined && end !== undefined ) { $button.click( function( e ) { e.preventDefault(); mw.toolbar.insertTags( start, end, ); } ); } else { $button[0].onclick = a.onclick;
}
$button[0].value = $a.text(); $a.replaceWith($button); }); }
};
$(document).ready(editTools.setup);
}(jQuery, mediaWiki));