JavaScript и IE7. Почему мой * .onload = function () {} не сработает? - PullRequest
1 голос
/ 21 ноября 2008

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

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

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

Ответы [ 3 ]

5 голосов
/ 21 ноября 2008

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

Дополнительная информация по этому вопросу:

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

2 голосов
/ 21 ноября 2008

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

вместо:

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

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

Do:

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

 $(imageViewer.image).load(function(){ 
      //actions to be performed on image load
 });
0 голосов
/ 21 ноября 2008

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

$(document).ready(function(){
   //your code
});
...