corrade-nucleus-nucleons – Rev 20

Subversion Repositories:
Rev:
define( [
        "../core",
        "../var/document",
        "../ajax"
], function( jQuery, document ) {

"use strict";

// Prevent auto-execution of scripts when no explicit dataType was provided (See gh-2432)
jQuery.ajaxPrefilter( function( s ) {
        if ( s.crossDomain ) {
                s.contents.script = false;
        }
} );

// 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();
                                }
                        }
                };
        }
} );

} );