s.dataType = "script";
// Handle JSONP-style loading
- window[ jsonp ] = window[ jsonp ] || function( tmp ) {
+ var customJsonp = window[ jsonp ];
+ window[ jsonp ] = function( tmp ) {
data = tmp;
jQuery.ajax.handleSuccess( s, xhr, status, data );
jQuery.ajax.handleComplete( s, xhr, status, data );
- // Garbage collect
- window[ jsonp ] = undefined;
-
- try {
- delete window[ jsonp ];
- } catch( jsonpError ) {}
-
+
+ if ( jQuery.isFunction( customJsonp ) ) {
+ customJsonp( tmp );
+ }
+ else {
+ // Garbage collect
+ window[ jsonp ] = undefined;
+
+ try {
+ delete window[ jsonp ];
+ } catch( jsonpError ) {}
+ }
+
if ( head ) {
head.removeChild( script );
}
}
// Fire the complete handlers
- jQuery.ajax.handleComplete( s, xhr, status, data );
-
+ if ( !jsonp ) {
+ jQuery.ajax.handleComplete( s, xhr, status, data );
+ }
if ( isTimeout === "timeout" ) {
xhr.abort();
}