X-Git-Url: http://git.asbjorn.it/?a=blobdiff_plain;f=src%2Fajax%2Fajax.js;h=ccf4f14a95f89048b842a048b5b5984a8433e95b;hb=042a46386a4e5efe787f963245aa534663559838;hp=45159a5f5d2661101097ee7beb7c0bc80c89d6ed;hpb=2daf49296abd4fcdf526a2c2814cd24e8f3eaff0;p=jquery.git diff --git a/src/ajax/ajax.js b/src/ajax/ajax.js index 45159a5..ccf4f14 100644 --- a/src/ajax/ajax.js +++ b/src/ajax/ajax.js @@ -13,8 +13,9 @@ jQuery.fn.extend({ * @param String url The URL of the HTML file to load. * @param Map params (optional) Key/value pairs that will be sent to the server. * @param Function callback (optional) A function to be executed whenever the data is loaded (parameters: responseText, status and response itself). - * @cat AJAX + * @cat Ajax */ + // DEPRECATED loadIfModified: function( url, params, callback ) { this.load( url, params, callback, 1 ); }, @@ -41,21 +42,27 @@ jQuery.fn.extend({ * @param String url The URL of the HTML file to load. * @param Object params (optional) A set of key/value pairs that will be sent as data to the server. * @param Function callback (optional) A function to be executed whenever the data is loaded (parameters: responseText, status and response itself). - * @cat AJAX + * @cat Ajax */ load: function( url, params, callback, ifModified ) { - if ( url.constructor == Function ) + if ( jQuery.isFunction( url ) ) return this.bind("load", url); + var off = url.indexOf(" "); + if ( off >= 0 ) { + var selector = url.slice(off, url.length); + url = url.slice(0, off); + } + callback = callback || function(){}; // Default to a GET request var type = "GET"; // If the second parameter was provided - if ( params ) { + if ( params ) // If it's a function - if ( params.constructor == Function ) { + if ( jQuery.isFunction( params ) ) { // We assume that it's the callback callback = params; params = null; @@ -65,7 +72,6 @@ jQuery.fn.extend({ params = jQuery.param( params ); type = "POST"; } - } var self = this; @@ -76,15 +82,26 @@ jQuery.fn.extend({ data: params, ifModified: ifModified, complete: function(res, status){ - if ( status == "success" || !ifModified && status == "notmodified" ) { - // Inject the HTML into all the matched elements - self.html(res.responseText) - // Execute all the scripts inside of the newly-injected HTML - .evalScripts() - // Execute callback - .each( callback, [res.responseText, status, res] ); - } else - callback.apply( self, [res.responseText, status, res] ); + // If successful, inject the HTML into all the matched elements + if ( status == "success" || !ifModified && status == "notmodified" ) + // See if a selector was specified + self.html( selector ? + // Create a dummy div to hold the results + jQuery("
") + // inject the contents of the document in, removing the scripts + // to avoid any 'Permission Denied' errors in IE + .append(res.responseText.replace(/