Template:Install user script/doc

From Wikipedia, the free encyclopedia

This template is used to install user scripts that reside on the English Wikipedia. It is to be used primarily on Special:MyPage/common.js or Special:MyPage/skin.js. It adds the necessary importScript line along with a backlink.

Usage[edit]

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

{{subst:iusc|script_path}}

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

Example[edit]

{{subst:iusc|User:TheDJ/sharebox.js}}

  • Produces: importScript('User:TheDJ/sharebox.js'); // Backlink: [[User:TheDJ/sharebox.js]]

importScript() is not deprecated[edit]

There is some confusion about whether or not importScript() is deprecated. The answer is that it is not deprecated.

In 2015, importScript() was deprecated for one week, and then the action was reversed. In 2022, a bug causing importScript() to not work for mobile users was fixed. As of 2022, the latest statement by software engineers on the deprecation is phab:T27845#8135189, which states For local imports, call importScript(). This is not, and never was, deprecated. For cross-wiki and other less trivial use cases, call mw.loader.load().

In conclusion, importScript() is not deprecated, and editors should feel free to use it. It does not need to be systematically replaced by mw.loader.load(), and {{iusc}} does not need to be replaced with {{lusc}}.

importScript() vs mw.loader.load()[edit]

{{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.

See also[edit]