Show More
Commit Description:
merge
Commit Description:
merge
References:
File last commit:
Show/Diff file:
Action:
node_modules/jquery/src/ajax/load.js
| 77 lines
| 1.9 KiB
| application/javascript
| JavascriptLexer
|
r789 | define( [ | |||
"../core", | ||||
"../core/stripAndCollapse", | ||||
"../var/isFunction", | ||||
"../core/parseHTML", | ||||
"../ajax", | ||||
"../traversing", | ||||
"../manipulation", | ||||
"../selector" | ||||
], function( jQuery, stripAndCollapse, isFunction ) { | ||||
"use strict"; | ||||
/** | ||||
* Load a url into a page | ||||
*/ | ||||
jQuery.fn.load = function( url, params, callback ) { | ||||
var selector, type, response, | ||||
self = this, | ||||
off = url.indexOf( " " ); | ||||
if ( off > -1 ) { | ||||
selector = stripAndCollapse( url.slice( off ) ); | ||||
url = url.slice( 0, off ); | ||||
} | ||||
// If it's a function | ||||
if ( isFunction( params ) ) { | ||||
// We assume that it's the callback | ||||
callback = params; | ||||
params = undefined; | ||||
// Otherwise, build a param string | ||||
} else if ( params && typeof params === "object" ) { | ||||
type = "POST"; | ||||
} | ||||
// If we have elements to modify, make the request | ||||
if ( self.length > 0 ) { | ||||
jQuery.ajax( { | ||||
url: url, | ||||
// If "type" variable is undefined, then "GET" method will be used. | ||||
// Make value of this field explicit since | ||||
// user can override it through ajaxSetup method | ||||
type: type || "GET", | ||||
dataType: "html", | ||||
data: params | ||||
} ).done( function( responseText ) { | ||||
// Save response for use in complete callback | ||||
response = arguments; | ||||
self.html( selector ? | ||||
// If a selector was specified, locate the right elements in a dummy div | ||||
// Exclude scripts to avoid IE 'Permission Denied' errors | ||||
jQuery( "<div>" ).append( jQuery.parseHTML( responseText ) ).find( selector ) : | ||||
// Otherwise use the full result | ||||
responseText ); | ||||
// If the request succeeds, this function gets "data", "status", "jqXHR" | ||||
// but they are ignored because response was set above. | ||||
// If it fails, this function gets "jqXHR", "status", "error" | ||||
} ).always( callback && function( jqXHR, status ) { | ||||
self.each( function() { | ||||
callback.apply( this, response || [ jqXHR.responseText, status, jqXHR ] ); | ||||
} ); | ||||
} ); | ||||
} | ||||
return this; | ||||
}; | ||||
} ); | ||||