The GlobalCssJs extension allows users to create a JavaScript page and a CSS page to be loaded in every wiki of a wiki farm. If you go to Preferences > Appearance
on any wiki where the extension is enabled you'll find links to your global scripts and style sheets:
On Wikimedia wikis, these global customizations are hosted on Meta-Wiki.
Global scripts (JavaScript) VariablesWhen adding scripts to your global.js, be aware that, as with gadgets, variables declared with "var example
" are not attached to the window
object: they are local variables whose scope is a wrapper function inserted by ResourceLoader to implement the global module (which is called "ext.globalcssjs.user
"). Therefore, if you plan to move a local script to the global module, and it needs to define global variables, make sure you use the syntax "window.example
" to declare them.
/* Any JavaScript added to this page will be loaded on all wikis where you have an account (see [https://www.mediawiki.org/wiki/Special:MyLanguage/Help:Extension:GlobalCssJs documentation]). */ window.myConfig = true; // [[wikipedia:User:Lupin/popups]] window.popupAdminLinks = true; mw.loader.load( '//en.wikipedia.org/w/index.php?title=User:Lupin/popups.js&action=raw&ctype=text/javascript' );Explicit URLs
You will need to pass a full URL to load the script.
Example/* Any JavaScript added to this page will be loaded on all wikis where you have an account (see [https://www.mediawiki.org/wiki/Special:MyLanguage/Help:Extension:GlobalCssJs documentation]). */ mw.loader.load( '//en.wikipedia.org/w/index.php?title=User:Lupin/popups.js&action=raw&ctype=text/javascript' );Per-wiki customization Example
/* Any JavaScript added to this page will be loaded on all wikis where you have an account (see [https://www.mediawiki.org/wiki/Special:MyLanguage/Help:Extension:GlobalCssJs documentation]). */ // Define a few functions function onMultiLingualWikis(){ // ... } function onWikibooks(){ // ... } function onFrench(){ // ... } function onRuWikisource(){ // ... } function onEveryWiki(){ mw.loader.load( '//www.mediawiki.org/w/index.php?title=MediaWiki:Gadget-UTCLiveClock.js&action=raw&ctype=text/javascript' ); } onEveryWiki(); if ( /^(mediawiki|wikidata|meta|commons)wiki$/.test( mw.config.get( 'wgDBname' ) ) ) { onMultiLingualWikis(); } else if ( /wikibooks$/.test( mw.config.get( 'wgDBname' ) ) ) { onWikibooks(); } else if ( mw.config.get( 'wgContentLanguage' ) === 'fr' ) { onFrench(); } else if ( mw.config.get( 'wgDBname' ) === 'ruwikisource' ) { onRuWikisource(); }To exclude a wiki
If you want to exclude a specific wiki, e.g. English Wikisource, you can wrap all or part of your global.js with:
if ( mw.config.get("wgDBname") !== "enwikisource" ) { // Whatever JavaScript you want to run on all wikis but enwikisource, goes here }Example: Set a global interface language
/* Change language to German */ mw.loader.using( 'mediawiki.user', function() { if ( mw.user.options.get( 'language' ) !== 'de' ) { ( new mw.Api() ).postWithToken( 'csrf', { action: 'options', change: 'language=de' } ).then( function() { mw.notify( 'Language has been changed to German. Please refresh the page.' ); } ); } else { console.log( 'Language already set to German!' ); } } );Global style sheets (CSS)
Note: Any @import ...
lines must be at the top.
/* Any CSS added to this page will be loaded on all wikis where you have an account (see [https://www.mediawiki.org/wiki/Special:MyLanguage/Help:Extension:GlobalCssJs documentation]). */ /* Hide a few elements of the interface */ #n-help, #footer { display: none !important; }Per-skin customization
Currently the extension does not provide global CSS/JS for specific skins, but it is possible to customize CSS and JS for a skin globally. For CSS, you can edit the appearance of a specific skin by using classes such as "skin-vector" and "skin-monobook", which are added to the body element automatically by MediaWiki. You can use the :not()
selector to skip just one skin, e.g. :not(.skin-minerva)
to not apply the rule to the mobile skin.
/* Any CSS added to this page will be loaded on all wikis where you have an account (see [https://www.mediawiki.org/wiki/Special:MyLanguage/Help:Extension:GlobalCssJs documentation]). */ /* Hide a few elements of the interface on vector skin */ .skin-vector #n-help, .skin-vector #footer { display: none !important; } /* Bold the sidebar interwiki links to en.wikipedia.org, simple.wikipedia.org, and interproject links to Commons/Wikivoyage */ .interwiki-en, .interwiki-simple, .wb-otherproject-commons, .wb-otherproject-wikivoyage { font-weight: bold; }Example (JS)
/* Any JavaScript added to this page will be loaded on all wikis where you have an account (see [https://www.mediawiki.org/wiki/Special:MyLanguage/Help:Extension:GlobalCssJs documentation]). */ // Load JWB globally when using the Vector skin if ( mw.config.get( 'skin' ) === 'vector' ) { mw.loader.load('//en.wikipedia.org/w/index.php?title=User:Joeytje50/JWB.js/load.js&action=raw&ctype=text/javascript'); }
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4