Manual:Interface/JavaScript

MediaWiki:Common.js contains JavaScript that will be loaded for all users. Enter "MediaWiki:Common.js" into the search box of your wiki. It will tell you if the page doesn't exist; if so, and you have the necessary user rights, just create it with the code you need to execute. There are similar pages affecting only users of specific skins (see below).

If is set to true, users can customize the interface for themselves only by creating and importing personal scripts in user subpages with lowercase titles (see below). Extension:Gadgets makes it easier for site admins and users to share JavaScript, see Gadget kitchen.

This page covers the state and configuration variables available. For the general JavaScript API, see the JSDuck documentation.

Global scripts

 * MediaWiki:Common.js (all skins, but ignored by the mobile website provided by Extension:MobileFrontend)
 * MediaWiki:skinname.js (per skin, for example MediaWiki:Vector.js)
 * MediaWiki:Group-group.js (per user group, for example MediaWiki:Group-sysop.js)
 * MediaWiki:Mobile.js (specific to the mobile website and provided by Extension:MobileFrontend)
 * Special:Gadgets

Personal scripts
They're only available if is set to true.


 * User:Example/common.js (all skins - introduced in MW v1.17)
 * User:Example/skinname.js (per skin, for example User:Example/vector.js)
 * User:Example/global.js (per wiki family, if Extension:GlobalCssJs is in use in for this family)

mw.config
To ease JavaScript programming, the MediaWiki software exposes a number of configuration values in an object called mw.config.

Note Most of these variables have a wg prefix.
 * For legacy reasons these names are exposed as global JavaScript variables if is true, so they use a prefix to avoid collisions.
 * A subset of these names correspond to $wg variables in PHP, but others are unrelated.
 * Besides the names in this list, many extensions also set additional JavaScript config variables prefixed with 'wg'.

These values can be accessed through, documented at ResourceLoader/Core modules.

Site-wide
Some additional site-wide variables are present only depending on the wiki configuration.

Page-specific
Some additional variables are present only depending on the page namespace, wiki configuration and/or user preferences.

User-specific
Related to the user currently viewing the page:

Hooks for extensions

 * ResourceLoaderGetConfigVars: Since MediaWiki 1.17 extensions can add their own site-wide variables through this hook.
 * MakeGlobalVariablesScript: Since MediaWiki 1.14 extensions can add their own variables to the OutputPage. If the variable is not dependent on the page being viewed, use the ResourceLoaderGetConfigVars hook instead.