Template:Install user script/doc: Difference between revisions

Content deleted Content added
remove incorrect advice. importScript is not deprecated, and now works on mobile
In section "importScript() is not deprecated", link from "some confusion" to User talk:Enterprisey/script-installer#Confusing history of importScript
 
(9 intermediate revisions by 4 users not shown)
Line 16:
== Example ==
<code><nowiki>{{subst:iusc|User:TheDJ/sharebox.js}}</nowiki></code>
*'''Produces:''' <code><nowiki>importScript( 'User:TheDJ/sharebox.js' ); // Backlink: [[User:TheDJ/sharebox.js]]</nowiki></code>
 
== importScript() is not deprecated ==
 
There is [[User talk:Enterprisey/script-installer#Confusing history of importScript|some confusion]] about whether or not importScript() is deprecated. The answer is that it is '''not''' deprecated.
 
In 2015, importScript() was [[gerrit:c/mediawiki/core/+/203293|deprecated for one week]], and then [[gerrit:c/mediawiki/core/+/206078/|the action was reversed]]. In 2022, a [[gerrit:c/mediawiki/core/+/820828|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 {{TQ|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 {{T|iusc}} does not need to be replaced with {{T|lusc}}.
 
== importScript() vs mw.loader.load() ==
{{T|Install user script}} uses importScript(), and {{T|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, <code>importScript('c:User:YourName/test.js');</code>
** '''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 ==
* {{tl|Load user script}} ({{tl|Lusc}}) – Version of this script that uses the non-deprecated <code>mw.loader.load()</code> method.
{{Wikipedia:User scripts/Navbox}}
<includeonly>{{Sandbox other||