importScript( '{{{1}}}' ); // Backlink: [[{{{1}}}]]
This is the template sandbox page for Template:Install user script (diff). See also the companion subpage for test cases. |
This template should always be substituted (i.e., use {{subst:Install user script}} ). Any accidental transclusions will be automatically substituted by a bot. |
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
editIn 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
editThere 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- {{Load user script}} ({{Lusc}}) – Version of this script that uses the
mw.loader.load()
method.