Skip to main content

Bug Tracker

Side navigation

#1813 closed enhancement (wontfix)

Opened October 17, 2007 03:20PM UTC

Closed November 11, 2009 07:39PM UTC

Enhancement of the jQuery.fn.load ...?

Reported by: yereth Owned by:
Priority: minor Milestone: 1.4
Component: ajax Version: 1.3.2
Keywords: load, hybrid, jQuery.fn.load Cc:
Blocked by: Blocking:
Description

I use this a lot myself; I needed a universal way to load any kind of link to any kind of item, so I changed the jQuery.fn.load in the following way:

(function($) {
$.fn._load = $.fn.load;

$.fn.extend({
	load: function(url, args, callback) {
		// Backwards compatibility for the jquery load function
		if ($.isFunction(url)) return $(this)._load(url, args, callback);
		if (!this.length) return this;
		var url2 = url;
		if (args) url2 += (url2.match(/\\?/) ? "&" : "?") + $.param(args);
		return this.each(function() {
			if (typeof this['location'] == 'object') this.location.href = url2;
			else if (typeof this['href'] != 'undefined') this.href = url2;
			else if (typeof this['src'] != 'undefined') this.src = url2;
			else {
				// Backwards compatibility for the jquery load function
				$(this)._load(url, args, callback);
			}
		})
	}
});
})(jQuery);

Probably it's not perfect and can use refining. Perhaps I also missed a bit here, but it seems to work properly right now. Perhaps this can be added the the jQuery.fn.load native function?

Attachments (0)
Change History (2)

Changed December 11, 2007 05:05PM UTC by john comment:1

component: coreajax

Changed November 11, 2009 07:39PM UTC by john comment:2

milestone: 1.2.21.4
resolution: → wontfix
status: newclosed
version: 1.2.11.3.2

I like the idea behind this proposal although there are a few major concerns:

1) You modify .href. This will break any attempts to load HTML in an anchor element.

2) You ignore the callback. You should probably bind a load event to handle when the image or page has been loaded.

If you can resolve these two issues (and build a patch and write some test cases) I will definitely land this.