Forum:Coding/Javascript

These are some helpful Javascript function to add various types of functionality to the wiki. Feel free to add other useful functions or modify these to make them more useful.

NavBar "widget" for Monobook
This function lets you add a custom box with custom links to Monobook's navigation bar, similar to a Monaco widget. function addBar { document.getElementById('p-navigation').innerHTML += ' '+ ' '+    ' Command Center '+                                // Name the box whatever you want ' '+             // Also name the div as you like, to use in your .css 'Main Page'+ // Copy this line for each link ' '; }

addOnloadHook(addBar);

GWW Switch
This function adds a button to the top of an article page that links to the same article on Guild Wars Wiki. /**** Guild Wars Wiki Tools - GuildWiki Switch function gwwtGuildWikiSwitch {  if ( wgNamespaceNumber < 100 ) {    var itemNode = document.createElement( 'li' ); itemNode.appendChild( document.createElement( 'a' ) ); itemNode.lastChild.href = 'http://wiki.guildwars.com/wiki/' + wgCanonicalNamespace + ':' + encodeURIComponent( wgTitle ); itemNode.lastChild.title = 'See this page on Guild Wars Wiki'; itemNode.lastChild.appendChild( document.createTextNode( 'GWW' ) ); document.getElementById( 'p-cactions' ).getElementsByTagName( 'ul' )[0].appendChild( itemNode ); } } hookEvent( 'load', gwwtGuildWikiSwitch );
 * (c) 2007 by Patrick Westerhoff [poke]

Purge button
This function adds a button to the top of an article page that will purge the server's cache of that article. function addPurge {   var hist; var url; if (!(hist = document.getElementById('ca-history') )) return; if (!(url = hist.getElementsByTagName('a')[0] )) return; if (!(url = url.href )) return; addPortletLink('p-cactions', url.replace(/([?&]action=)history([&#]|$)/, '$1purge$2'),                  'purge', 'ca-purge', 'Purge server cache', '0'); } addOnloadHook(addPurge);

Custom edit buttons
This function allows you to add to the line of edit buttons above the edit box. See WikiaHelp:Custom edit buttons for more info and Wikia:Category:Custom edit buttons/Commons:Category:ButtonToolbar for premade button icons. /***** Custom edit buttons ****/ if (mwCustomEditButtons) { mwCustomEditButtons[mwCustomEditButtons.length] = { "imageFile": "http://images.wikia.com/central/images/2/23/Button_code.png", // Image file to use "speedTip": "Code", "tagOpen": " ",  // What to insert after the selected text "sampleText": "foo"}    // Text to insert between if nothing is selected // tagOpen or tagClose can be null, i.e. to insert a self-closing tag like " " }