2013-04-08 57 views
3

我正在創建圖像預加載器。它可以在Firefox以外的所有瀏覽器中正常工作(使用Firefox 10.0進行測試)。基本上,輸入是一個名爲image_list的圖像陣列。這些圖像被動態添加到文檔主體,並附加了一個加載回調函數,該函數調用函數update_progress。代碼如下:圖像加載事件不在firefox中觸發

$(image_list).each(function() { 
     var x = $('<img />') 
     .load(function() {update_progress(percent_loaded += step);}) 
     .attr('src', this) 
     .appendTo('body') 
     .css('display', 'none'); 
     .each(function() { 
      if(this.complete) 
      update_progress(percent_loaded += step); 
     }); 
}); 

在Firefox中,負載回調和update_progress永遠不會被調用。然而,在鉻和我測試過的所有其他瀏覽器中,完全相同的代碼工作正常。有沒有什麼方法可以檢測圖像何時加載到Firefox?

+0

您是否在http://api.jquery.com/load-event/上看到「使用圖像時加載事件的注意事項」部分?另外:http://stackoverflow.com/q/3877027/901048 – Blazemonger 2013-04-08 20:39:38

+0

感謝Blazemonger是的,我看到在api中的參考。我只是想知道是否有任何方法可靠地檢測圖像加載完成。 – 2013-04-08 20:50:25

+0

你能提供一個jsfiddle嗎? – 2014-07-21 13:34:11

回答

0

我會首先檢查圖片是否有高度,通過檢查它的高度屬性。

if (the_image.height > 0) { 
    // The image is already loaded (possibly cached) 
} 

如果你有任何緩存的圖像等,這應該可以幫助你解決這個問題。