X-Git-Url: https://git.heureux-cyclage.org/?a=blobdiff_plain;f=resources%2Fsrc%2Fmediawiki.base%2Fmediawiki.base.js;h=9016c7c274cc2a68b2194da5fd0c939f354f27c2;hb=7706ef1e67933bc85f2202c175d3652e379cb491;hp=107ab33fb6bc77e8aee4baed4bf7790ac3d199f6;hpb=8c9de54eef541b4e5997f0d40f1619ae84b0b3a4;p=lhc%2Fweb%2Fwiklou.git diff --git a/resources/src/mediawiki.base/mediawiki.base.js b/resources/src/mediawiki.base/mediawiki.base.js index 107ab33fb6..9016c7c274 100644 --- a/resources/src/mediawiki.base/mediawiki.base.js +++ b/resources/src/mediawiki.base/mediawiki.base.js @@ -644,7 +644,7 @@ var deferred = $.Deferred(); // Allow calling with a single dependency as a string - if ( typeof dependencies === 'string' ) { + if ( !Array.isArray( dependencies ) ) { dependencies = [ dependencies ]; } @@ -662,13 +662,42 @@ return deferred.reject( e ).promise(); } - mw.loader.enqueue( dependencies, function () { - deferred.resolve( mw.loader.require ); - }, deferred.reject ); + mw.loader.enqueue( + dependencies, + function () { deferred.resolve( mw.loader.require ); }, + deferred.reject + ); return deferred.promise(); }; + /** + * Load a script by URL. + * + * Example: + * + * mw.loader.getScript( + * 'https://example.org/x-1.0.0.js' + * ) + * .then( function () { + * // Script succeeded. You can use X now. + * }, function ( e ) { + * // Script failed. X is not avaiable + * mw.log.error( e.message ); // => "Failed to load script" + * } ); + * } ); + * + * @member mw.loader + * @param {string} url Script URL + * @return {jQuery.Promise} Resolved when the script is loaded + */ + mw.loader.getScript = function ( url ) { + return $.ajax( url, { dataType: 'script', cache: true } ) + .catch( function () { + throw new Error( 'Failed to load script' ); + } ); + }; + // Alias $j to jQuery for backwards compatibility // @deprecated since 1.23 Use $ or jQuery instead mw.log.deprecate( window, '$j', $, 'Use $ or jQuery instead.' );