IE поддерживает attachEvent вместо этого.
image.attachEvent("onload", function() {
// ...
});
С помощью jQuery вы можете просто написать
$(image).load(function() {
// ...
});
Когда дело доходит до событий, если у вас есть возможность использовать jQuery, я бы предложил использовать его, потому что он позаботится о совместимости браузера. Ваш код будет работать во всех основных браузерах, и вам не нужно об этом беспокоиться.
Обратите внимание, что для того, чтобы событие загрузки было запущено в IE, вам необходимо убедиться, что изображение не будет загружено из кэша, в противном случае IE не запустит событие загрузки.
Чтобы сделать это, вы можете добавить фиктивную переменную в конце URL вашего изображения, например,
image.setAttribute( 'src', image.getAttribute('src') + '?v=' + Math.random() );
Некоторые известные проблемы, связанные с использованием метода загрузки jQuery:
Предупреждения о событии загрузки при использовании с изображениями
Распространенную проблему, которую разработчики пытаются решить с помощью .load ()
ярлык для выполнения функции, когда изображение (или коллекция
изображения) полностью загружены. Есть несколько известных предостережений с
это то, что следует отметить. Это:
- Он не работает согласованно и надежно кросс-браузерно
- Он не срабатывает корректно в WebKit, если для src изображения установлено значение
тот же источник, что и раньше
- Не правильно всплывает дерево DOM
- Может перестать срабатывать для изображений, которые уже живут в браузере
кэш
См. jQuery документы для получения дополнительной информации.