Template:Install user script/doc: Difference between revisions

Content deleted Content added
In section "importScript() is not deprecated", link from "some confusion" to User talk:Enterprisey/script-installer#Confusing history of importScript
 
(12 intermediate revisions by 5 users not shown)
Line 1:
{{Documentation subpage}}{{template shortcuts|iusc}}
{{Subst only|auto=yes}}
{{ombox|image=[[File:Stop hand nuvola.svg|40px]]|type=delete|text= This template uses the deprecated '''importScript''' function. Use {{tl|Load user script}} or the shortcut {{tl|Lusc}} instead. Installing a script using the deprecated version will not work on mobile ___domain and will eventually not work on desktop ___domain.}}
<!-- Categories go at the bottom of this page and interwikis go in Wikidata. -->
 
Line 17 ⟶ 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||
[[Category:Wikipedia JavaScript templates]]
[[Category:Wikipedia scripts]]
[[Category:Wikipedia user script templates]]
}}</includeonly>