2009-09-04 8 views
3

У меня есть изображение на веб-странице, которая динамически генерируется программой CGI на стороне сервера. Периодически это изображение обновляется таймером и/или изменяется на основе пользовательского ввода. Поэтому у меня есть функция Javascript, такая какОпределить, когда закончилось определенное изображение

// <img id="screen" src=""> is elsewhere in the page 
function reloadImage() { 
    $("#screen").attr("src", make_cgi_url_based_on_form_inputs()); 
} 

Это работает нормально, но иногда требуется некоторое время, чтобы загрузить изображение. Поэтому я хотел бы, чтобы появилось какое-то сообщение, в котором говорится: «Загрузка изображения ...», но затем это изображение исчезает, когда изображение загружено и отображается в браузере.

Есть ли какие-либо события Javascript, которые могут это сделать? В качестве альтернативы, есть ли другой способ загрузить/изменить/обновить изображение и определить, когда загрузка будет завершена, через Ajax или что-нибудь еще?

+0

возможно дубликат [Javascript обратного вызова для зная, когда изображение загружается] (http://stackoverflow.com/questions/280049/javascript-callback- for-aware-when-an-image-is-loaded) –

ответ

9

Вы можете попробовать это Jquery решение: http://jqueryfordesigners.com/image-loading/

$(function() { 
     var img = new Image(); 
     $(img).load(function() { 
      //$(this).css('display', 'none'); // .hide() doesn't work in Safari when the element isn't on the DOM already 
      $(this).hide(); 
      $('#loader').removeClass('loading').append(this); 
      $(this).fadeIn(); 
     }).error(function() { 
      // notify the user that the image could not be loaded 
     }).attr('src', 'http://farm3.static.flickr.com/2405/2238919394_4c9b5aa921_o.jpg'); 
    }); 
+0

Спасибо! Я полностью пропустил часть документации по загрузке jQuery, где говорится, что функция загрузки будет работать как с изображениями, так и с окнами и кадрами. –

+0

Рад, что я мог бы помочь :) – marcgg

Смежные вопросы