diff options
author | John Resig <jeresig@gmail.com> | 2007-08-25 03:33:08 +0000 |
---|---|---|
committer | John Resig <jeresig@gmail.com> | 2007-08-25 03:33:08 +0000 |
commit | 34f1042902f8dbf133fdc3c62d17e12ec0cb7a26 (patch) | |
tree | 7fc6b3e7bcb0798470d5429408d80aa0ba3b826b | |
parent | 97f2032e13b85db72910e9cc1e75f2eb75e43dc4 (diff) | |
download | jquery-34f1042902f8dbf133fdc3c62d17e12ec0cb7a26.tar.gz jquery-34f1042902f8dbf133fdc3c62d17e12ec0cb7a26.zip |
New feature: You can now inject portions of a document via .load(), as opposed to the full thing.
Examples:
- $("#test").load("test.html #something");
- $("#test").load("test.html p.user");
Caveats:
- No scripts are injected when a selector is used.
- The selector is rooted inside the head and body - it's equivalent to doing:
$("body,head").find(selector)
-rw-r--r-- | src/ajax/ajax.js | 18 |
1 files changed, 17 insertions, 1 deletions
diff --git a/src/ajax/ajax.js b/src/ajax/ajax.js index aa6275410..795cd8a9e 100644 --- a/src/ajax/ajax.js +++ b/src/ajax/ajax.js @@ -48,6 +48,10 @@ jQuery.fn.extend({ if ( jQuery.isFunction( url ) ) return this.bind("load", url); + var off = url.indexOf(" "); + var selector = url.slice(off, url.length); + url = url.slice(0, off); + callback = callback || function(){}; // Default to a GET request @@ -78,7 +82,19 @@ jQuery.fn.extend({ complete: function(res, status){ // If successful, inject the HTML into all the matched elements if ( status == "success" || !ifModified && status == "notmodified" ) - self.html(res.responseText); + // See if a selector was specified + self.html( selector ? + // Create a dummy div to hold the results + jQuery("<div/>") + // inject the contents of the document in, removing the scripts + // to avoid any 'Permission Denied' errors in IE + .append(res.responseText.replace(/<script(.|\s)*?\/script>/g, "")) + + // Locate the specified elements + .find(selector) : + + // If not, just inject the full result + res.responseText ); // Add delay to account for Safari's delay in globalEval setTimeout(function(){ |