Onload в IE9

Автор: Андрей Косяк Дата публикации: 19.10.2011

Проблема

В IE9 не срабатывает корректно событие onload для изображений.

Для примера, у меня на странице несколько изображений. По загрузке каждого из них с этим изображением хочу что-то сделать:

$("img").load(function(){
			.myFunction();
		});

IE9 ведет себя как-то неадекватно: нужная мне функция сработала только для одного изображения на странице.

Решение

Для корректной работы приходится использовать следующую конструкцию:

if(!$.browser.msie)
	{
		// для нормальных браузеров
		$("img").load(function(){
			myFunction();
		});
	}
	else // костыль для IE9
	{
		if($("img")[0].complete == true) myFunction();
		else  $("img").one("load", function(){myFunction());
	}