2012-11-03 48 views
2

可能重複:
Browser-independent way to detect when image has been loadedjQuery的:檢查的圖像加載完畢

如何檢查映像是否由客戶端完全下載後,這樣我可以使用它像一個格式:

<script type="text/javascript"> 
function doSomething(){ 
//doing something already 
    if(image has finished loading) { 
     alert("The image has been downloaded"); 
    } 
    else { 
     //do something else 
    } 
} 
</script> 

謝謝

+0

檢查這個鏈接可以幫助你:http://stackoverflow.com/questions/821516/browser-independent-way-to-detect-when-image-has-been -loadedloaded – Rahul

回答

2

您可以使用load

$img.load(function() { 
    // image is loaded 
}); 

如果你有問題,上加載window.load而不是document.ready的代碼。

+1

我不想在加載完成時執行一個函數。我只想檢查圖像是否已經加載 –

+1

那麼你可以設置一個布爾值。 – elclanrs

+0

不完全準確,看破碎的圖像http://jsfiddle.net/WSvTa/ –

0
<span id="result"></span> 
</p> 

<script type="text/javascript"> 

    $('#image1') 
    .load(function(){ 
     $('#result').text('Image is loaded!'); 
    }) 
    .error(function(){ 
     $('#result').text('Image is not loaded!'); 
    }); 

</script> 
1

嘗試類似的東西 - :

<script type ="text/javascript"> 
    var imageLoaded = false; 

    $(document).ready(function(){ 

     $("img").load(function(){ 
      imageLoaded = true; 
     }); 
    }); 


    function doSomething(){ 
     //doing something already 
     if(imageLoaded) { 
      alert("The image has been downloaded"); 
     } 
     else { 
      //do something else 
     } 
} 

</script> 
0

只使用負載回調函數的所有論題的解決方案並不像有時負載不會解僱已緩存的圖片或破裂的人完全準確。 有很多嘗試儘可能簡單地檢測這種行爲,並且我可以告訴你,最好的方法是使用由Desandro加載的非常明亮的插件圖像。

你可以在這裏看到:https://github.com/desandro/imagesloaded/blob/master/jquery.imagesloaded.js