Událost Image onLoad + problém s JavaScriptem v aplikaci Internet Explorer

Nedávno jsem kódoval aplikaci, která by vložila obrázek do stránky a poté provedla danou funkci, když se spustí událost onLoad obrázku. Můj kód fungoval všude kromě Internet Explorer. To nebylo všechno dohromady zpočátku šokující, ale skutečnost, že ani IE8 selhal, událost onLoad odradila. Můj kód vypadal takto:

var img = new Element('img',{
	alt: this.title ? this.title.get('html') : this.options.url,
	src: this.options.url,
	events: {
		error: function() {
			this.messageBox.set('html',this.options.errorMessage);
			img.dispose();
		}.bind(this),
		load: function() {
			img.setStyle('display','');
			this.unfade();
			if(!this.footer) {
				img.setStyle('cursor','pointer').addEvent('click',this.close.bind(this));
			}
		}.bind(this)
	},
	styles: {
		display: 'none'
	}
}).inject(this.messageBox);

V tušení jsem oddělil přiřazení „src“ a zakódoval jsem to jako samostatný příkaz:

var img = new Element('img',{
	alt: this.title ? this.title.get('html') : this.options.url,
	events: {
		error: function() {
			this.messageBox.set('html',this.options.errorMessage);
			img.dispose();
		}.bind(this),
		load: function() {
			img.setStyle('display','');
			this.unfade();
			if(!this.footer) {
				img.setStyle('cursor','pointer').addEvent('click',this.close.bind(this));
			}
		}.bind(this)
	},
	styles: {
		display: 'none'
	}
});
img.set('src',this.options.url).inject(this.messageBox); //for ie

Není divu, že to fungovalo. Důvod, proč moje modifikace fungovala, je ten, že obrázek byl stahován z mezipaměti, jakmile byl nastaven atribut SRC, čímž se "přebil" přiřazení události k úderu. Mějte to na paměti, pokud narazíte na problémy s onLoad s obrázky.