Contents

Adds support for loading a script or stylesheet from a wiki page in the MediaWiki namespace, based on a URL parameter. This makes showing demonstrations easier as users don't have to enable a gadget or put something in their user common.js.

This version adds two new url parameters withJS and withCSS. You can append them on to the end of the url: ?withCSS=MediaWiki:Foo.css&withJS=MediaWiki:Foo.js

/** * @source https://www.mediawiki.org/wiki/Snippets/Load_JS_and_CSS_by_URL * @revision 2017-05-16 */mw.loader.using(['mediawiki.util','mediawiki.notify'],function(){varextraCSS=mw.util.getParamValue('withCSS'),extraJS=mw.util.getParamValue('withJS');if(extraCSS){// DONT REMOVE THIS IF (unless you are OK with CSRF attacks)if(/^MediaWiki:[^&<>=%#]*\.css$/.test(extraCSS)){mw.loader.load('/w/index.php?title='+encodeURIComponent(extraCSS)+'&action=raw&ctype=text/css','text/css');}else{mw.notify('Only pages from the MediaWiki namespace are allowed.',{title:'Invalid withCSS value'});}}if(extraJS){// DONT REMOVE THIS IF (unless you are OK with XSS & CSRF attacks)if(/^MediaWiki:[^&<>=%#]*\.js$/.test(extraJS)){mw.loader.load('/w/index.php?title='+encodeURIComponent(extraJS)+'&action=raw&ctype=text/javascript');}else{mw.notify('Only pages from the MediaWiki namespace are allowed.',{title:'Invalid withJS value'});}}});

/** * @source https://www.mediawiki.org/wiki/Snippets/Load_JS_and_CSS_by_URL * @revision 2017-05-16 */mw.loader.using(['mediawiki.util','mediawiki.notify'],function(){varextraCSS=mw.util.getParamValue('withCSS'),extraJS=mw.util.getParamValue('withJS'),extraModule=mw.util.getParamValue('withModule');if(extraCSS){// DONT REMOVE THIS IF (unless you are OK with CSRF attacks)if(/^MediaWiki:[^&<>=%#]*\.css$/.test(extraCSS)){mw.loader.load('/w/index.php?title='+encodeURIComponent(extraCSS)+'&action=raw&ctype=text/css','text/css');}else{mw.notify('Only pages from the MediaWiki namespace are allowed.',{title:'Invalid withCSS value'});}}if(extraJS){// DONT REMOVE THIS IF (unless you are OK with XSS and CSRF attacks)if(/^MediaWiki:[^&<>=%#]*\.js$/.test(extraJS)){mw.loader.load('/w/index.php?title='+encodeURIComponent(extraJS)+'&action=raw&ctype=text/javascript');}else{mw.notify('Only pages from the MediaWiki namespace are allowed.',{title:'Invalid withJS value'});}}if(extraModule){if(/^ext\.gadget\.[^,\|]+$/.test(extraModule)){mw.loader.load(extraModule);}else{mw.notify('Only gadget modules are allowed.',{title:'Invalid withModule value'});}}});

The version of this snippet prior to May 8, 2017 had a security vulnerability in it. If you used an older version of this snippet, please update to the version shown below

This version adds a single url parameter, use but allows multiple files to be separated by a pipe (|). You can then append on to the end of a url: ?use=MediaWiki:Foo.js|MediaWiki:Foo.css|MediaWiki:Bar.js