2008-11-21 2 views
1

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

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

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

ответ

5

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

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

Javascript callback for Image Loading

+0

как это сделать? – alex 2008-11-21 00:27:50

+0

Я добавил ссылку на ответ, который содержит пример фрагмента. – keparo 2008-11-21 00:30:40

2

Поддержка кросс-браузера не так проста из-за различий в реализации. Так как вы используете 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

Странно, некоторые из галерей теперь работают ... щелкнув на каком-нибудь изображении e уменьшает изображение, которое отображается справа, но не на других миниатюрах изображений. Звучит странно или что? Большое спасибо за ваш ввод. – alex 2008-11-21 00:27:11

0

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

$(document).ready(function(){ 
    //your code 
}); 
Смежные вопросы