Jump to content

Template:Load user script/doc

From Wikitech

This template is used to install that reside on Wikitech. It is to be used primarily on Special:MyPage/common.js or Special:MyPage/skin.js. It adds the necessary mw.loader.load line along with a .

Usage

In order to install a user script for your Wikitech account, add the following line to Special:MyPage/common.js or Special:MyPage/skin.js:

{{subst:lusc|script_path}}

  • Replace script_path with the full .js page name of the user script to be installed.
  • The template must be (subst:), or else it won't work.
  • after saving the page.

Example

{{subst:lusc|User:Example/script.js}}

  • Produces: mw.loader.load( '/w/index.php?title=User:Example/script.js&action=raw&ctype=text/javascript' ); // Backlink: [[User:Example/script.js]]

{{subst:lusc|User:Example/script.js|User:Example/script}}

  • Produces: mw.loader.load( '/w/index.php?title=User:Example/script.js&action=raw&ctype=text/javascript' ); // Backlink: [[User:Example/script]]

importScript() vs mw.loader.load()

{{Install user script}} uses importScript(), and {{Load user script}} uses mw.loader.load().

importScript():

  • Is less verbose, only needing the string of the page you're loading.
  • Is more restrictive, only allowing the loading of Wikipedia pages in the user or MediaWiki namespaces.
  • Can load from other Wikimedia wikis, using a prefix such as "c" for "commons". For example, importScript('c:User:YourName/test.js');
    • However, this usage is not recommended as it involves an extra round trip. mw.loader.load is faster for cross-wiki loads.
  • Makes your common.js file more readable, since it is less verbose.

mw.loader.load():

  • Is more verbose, needing a long URL string. Note that the URL string has to be correctly escaped.
  • Is less restrictive. Will load any URL from anywhere. So for example is good for loading from a local dev environment such as localhost.
  • Can load from other Wikimedia wikis by adjusting the URL.
  • Makes your common.js file less readable, since it is more verbose.