JavaScript & IE7 - Почему не срабатывает моя функция *.onload =() { }?
-
08-07-2019 - |
Вопрос
У меня есть галерея, которую я быстро закодировал для небольшого сайта, и в Firefox 3 и Safari 3 она работает нормально.Но когда я тестирую на своем старом лучшем друге IE7, кажется, что он не запускает imageVar.onload = function() { // код здесь }..который я хочу использовать, чтобы остановить эффект загрузки и загрузить изображение.
Пожалуйста, имейте в виду...
- Я знаю, что миниатюры - это просто уменьшенная версия увеличенных изображений.Когда изображения будут доработаны клиентом, я собираюсь создать соответствующие эскизы.
- Это моя первая попытка попытаться по большей части отказаться от процедурного JavaScript..поэтому, пожалуйста, будьте спокойны и любезно дайте мне знать, где мой код отстой!
Решение
Для успешного использования Image.onload вы должны зарегистрировать метод обработчика событий до того, как будет установлен атрибут src.
Связанная информация в этом вопросе:
Другие советы
Поддержка событий в разных браузерах не так проста из-за различий в реализации.Поскольку вы используете 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
});