+++ /dev/null
-(function( jQuery ) {
-
-// Install text to script executor
-jQuery.extend( true, jQuery.ajaxSettings , {
-
- accepts: {
- script: "text/javascript, application/javascript"
- },
-
- contents: {
- script: /javascript/
- },
-
- converters: {
- "text script": jQuery.globalEval
- }
-} );
-
-// Bind script tag hack transport
-jQuery.ajax.transport("script", function(s) {
-
- // Handle cache special case
- if ( s.cache === undefined ) {
- s.cache = false;
- }
-
- // This transport only deals with cross domain get requests
- if ( s.crossDomain && s.async && ( s.type === "GET" || ! s.data ) ) {
-
- s.global = false;
-
- var script,
- head = document.getElementsByTagName("head")[0] || document.documentElement;
-
- return {
-
- send: function(_, callback) {
-
- script = document.createElement("script");
-
- script.async = "async";
-
- if ( s.scriptCharset ) {
- script.charset = s.scriptCharset;
- }
-
- script.src = s.url;
-
- // Attach handlers for all browsers
- script.onload = script.onreadystatechange = function( _ , statusText) {
-
- if ( ! script.readyState || /loaded|complete/.test( script.readyState ) ) {
-
- // Handle memory leak in IE
- script.onload = script.onreadystatechange = null;
-
- // Remove the script
- if ( head && script.parentNode ) {
- head.removeChild( script );
- }
-
- script = 0;
-
- // Callback
- callback( statusText ? 0 : 200, statusText || "success" );
- }
- };
- // Use insertBefore instead of appendChild to circumvent an IE6 bug.
- // This arises when a base node is used (#2709 and #4378).
- head.insertBefore( script, head.firstChild );
- },
-
- abort: function(statusText) {
- if ( script ) {
- script.onload( 0 , statusText );
- }
- }
- };
- }
-});
-
-})( jQuery );