Hmm… actually, looking at the ResourceLoader code, the makeInlineScript() function does not actually queue the script to execute. It only returns a properly wrapped, anonymized function as a string. I still needed to call OutputPage->addScript() to make it execute.
DanB
From: Wikitech-l [mailto:wikitech-l-bounces@lists.wikimedia.org] On Behalf Of Daniel Barrett Sent: Wednesday, December 30, 2015 11:03 AM To: Wikimedia developers Subject: Re: [Wikitech-l] The right way to inject user-supplied JavaScript?
Kevin Israel writes:
Since MediaWiki 1.26, all ResourceLoader modules are loaded asynchronously, so inline scripts now need to account for the possibility they may be executed before the jquery and mediawiki modules have loaded.
If you use ResourceLoader::makeInlineScript() to build the HTML script element, your JavaScript code will be automatically wrapped in an anonymous function and queued for execution once ResourceLoader has started up.
Thank you! I have documented your advice at https://www.mediawiki.org/wiki/ResourceLoader/Migration_guide_%28users%29#In....
DanB _______________________________________________ Wikitech-l mailing list Wikitech-l@lists.wikimedia.org https://lists.wikimedia.org/mailman/listinfo/wikitech-l