JavaScript & IE7 - Почему не срабатывает моя функция *.onload =() { }?

StackOverflow https://stackoverflow.com/questions/307364

Вопрос

У меня есть галерея, которую я быстро закодировал для небольшого сайта, и в Firefox 3 и Safari 3 она работает нормально.Но когда я тестирую на своем старом лучшем друге IE7, кажется, что он не запускает imageVar.onload = function() { // код здесь }..который я хочу использовать, чтобы остановить эффект загрузки и загрузить изображение.

Пожалуйста, имейте в виду...

  • Я знаю, что миниатюры - это просто уменьшенная версия увеличенных изображений.Когда изображения будут доработаны клиентом, я собираюсь создать соответствующие эскизы.
  • Это моя первая попытка попытаться по большей части отказаться от процедурного JavaScript..поэтому, пожалуйста, будьте спокойны и любезно дайте мне знать, где мой код отстой!
Это было полезно?

Решение

Для успешного использования Image.onload вы должны зарегистрировать метод обработчика событий до того, как будет установлен атрибут src.

Связанная информация в этом вопросе:

Обратный вызов Javascript для загрузки изображения

Другие советы

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

вместо того , чтобы:

 window.load = function(){ 
      //actions to be performed on window load
 }

 imageViewer.image.onload = function(){ 
     //actions to be performed on image load
 }

Делай:

$(window).load(function(){ 
    //actions to be performed on window load
});

 $(imageViewer.image).load(function(){ 
      //actions to be performed on image load
 });

Просто чтобы добавить к предложению Eran использовать встроенные обработчики событий jQuery, вы можете запускать код при загрузке документа и создании DOM, но до загрузки изображений с помощью:

$(document).ready(function(){
   //your code
});
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top