define( [
"../core", "../var/document", "../ajax"
], function( jQuery, document ) {
// Install script dataType jQuery.ajaxSetup( {
accepts: { script: "text/javascript, application/javascript, " + "application/ecmascript, application/x-ecmascript" }, contents: { script: /\b(?:java|ecma)script\b/ }, converters: { "text script": function( text ) { jQuery.globalEval( text ); return text; } }
} );
// Handle cache’s special case and crossDomain jQuery.ajaxPrefilter( “script”, function( s ) {
if ( s.cache === undefined ) { s.cache = false; } if ( s.crossDomain ) { s.type = "GET"; }
} );
// Bind script tag hack transport jQuery.ajaxTransport( “script”, function( s ) {
// This transport only deals with cross domain requests if ( s.crossDomain ) { var script, callback; return { send: function( _, complete ) { script = jQuery( "<script>" ).prop( { charset: s.scriptCharset, src: s.url } ).on( "load error", callback = function( evt ) { script.remove(); callback = null; if ( evt ) { complete( evt.type === "error" ? 404 : 200, evt.type ); } } ); // Use native DOM manipulation to avoid our domManip AJAX trickery document.head.appendChild( script[ 0 ] ); }, abort: function() { if ( callback ) { callback(); } } }; }
} );
} );