(function () {
"use strict";
// CHANGE THIS! It must be a unique id on the page, so make sure it's not something trivial either.
var buttonId = 'myToolButton'; // the id of the toolbar button
if ( $.inArray( mw.config.get( 'wgAction' ), ['edit', 'submit'] ) == -1 )
return; // abort if not currently editing an article
mw.loader.using('jquery.textSelection'); // seems to be loaded by default, but just in case
// This is the script that adds the toolbar button for your script above the textarea
var addToolbarButtons_scriptUrl = '//en.wikipedia.org/w/index.php?title='
+ 'User:V111P/js/addToolbarButtons.js&action=raw'
+ '&ctype=text/javascript'; // [[User:V111P/js/addToolbarButtons.js]]
// see User:V111P/js/addToolbarButtons for information on how to customize your button
// you should at least change the icon and the tooltip
var toolbarButtonProps = {
id: buttonId,
tooltip: 'My Tool\'s Tooltip',
section: 'main',
group: 'insert',
callback: myFunction
};
if (mediaWiki.libs.addToolbarButtons)
mediaWiki.libs.addToolbarButtons(toolbarButtonProps); // addToolbarButtons.js already loaded
else {
// When it is first loaded, addToolbarButtons.js looks in the array window.toolbarButtonsToAdd
// to determine which buttons to create. First we create the array if it doesn't exist, then
// we add our button properties to it. Then we call $.ajax to load addToolbarButtons.js
var tbs = window.toolbarButtonsToAdd = window.toolbarButtonsToAdd || [];
tbs.push(toolbarButtonProps);
$.ajax( { url: addToolbarButtons_scriptUrl, dataType: 'script', cache: true } );
}
var textArea = $('#wpTextbox1');
// The function called when the toolbar button is pressed.
// The name of this function must match the value of the callback property
// of the toolbarButtonProps object above.
function myFunction() {
var sel = textArea.textSelection('getSelection');
sel = sel.replace(/\r/g, ''); // IE before 9 doesn't remove the \r's
// manipulate the text in the sel variable
sel = sel.replace(/ /g, '_'); // this is an example. Replaces all spaces with underscores
// replace the selected text in the textarea with the new text
textArea.textSelection('encapsulateSelection', {pre: sel, replace: true});
}
})();