2011-05-19 79 views
2

我想顯示圖像只有當它們加載成功(一些路徑給404)。 有以下代碼,它工作正常。JQuery:顯示圖片時,成功加載和衝突與加載

<script> 
    $(document).ready(function() { 
     $(".complex-image").load(function(){ 
      $(this).show(); 
     }); 
    }); 
</script> 

現在,一個頁面中顯示了谷歌地圖,其中規定:

onload = initMap 
onunload = GUnload 

在這個頁面在IE8和Chrome,圖像不顯示,即使可用。但在Firefox 4中顯示正常。我的網站上有圖片+地圖的示例頁面是this

我也嘗試了反向方法:加載時出現錯誤時隱藏圖像。使用以下代碼:

<script> 
    $(document).ready(function() { 
     $(".complex-image").ready(function(){ 
      $(this).hide(); 
     }); 
    }); 
</script> 

這不會隱藏包含地圖和非地圖頁面上IE8上的圖像。

當定義了body onload時,什麼是成功加載時顯示圖像的跨瀏覽器方式?

編輯:即使正從緩存中讀取圖像用於Elzo的解決方案,並獲得img.load()解僱了,用這個: jQuery callback on image load (even when the image is cached)

回答

4
+0

我認爲另一種方法是檢查圖像對象不是null或undefined。好吧,它不像你的例子那麼流行,但它也應該起作用。 – reporter 2011-05-19 13:12:46

+0

謝謝!爲了讓img.load()在從緩存讀取圖像時觸發,使用[link]增強了解決方案(http://stackoverflow.com/questions/3877027/jquery-callback-on-image-load-even-當最圖像是緩存的) – tarkeshwar 2011-05-19 15:34:25