我正在構建一個Javascript的燈箱,我試圖在圖像加載後調整大小。我使用下面的代碼,它工作正常 - 它輸出一次加載正確的寬度。當緩存時,圖像寬度跟蹤零,隨着onload
我的問題:
當我刷新,它會立即從緩存加載圖像,似乎繞過負載。我得到一個寬度爲零的瞬間。爲什麼會發生?
我的代碼:
var oImage = new Image();
oImage.src = 'http://mydomain.com/image.png';
container.html(oImage);
oImage.onload = function(){
alert(this.width);
}
** 更新* *
@Alex:這是我和你的插件嘗試過的代碼,我想我可能做錯事。因爲你的插件看起來相當不錯,所以我很樂意讓它工作。
container.waitForImages(function() {
var cWidth = $(this).width();
alert("width: "+cWidth); // returns 0 - works first time but not cached
});
// Adding the image to the container for preload
container.html('<img src="mygraphic.png" />');
您可以查看[my plugin](https:// github。)的代碼。com/alexanderdickson/waitForImages)看看我如何處理這個。 – alex 2012-01-27 05:15:47
@alex,感謝您分享您的插件!如果您也可以將解決方案總結爲答案,那將是非常好的。如果不是,希望別人能夠儘快,因爲這對我來說也是一個巨大的問題。 – dkamins 2012-01-27 05:18:28
您是否嘗試過在將其插入到HTML中之前設置onload處理程序? – 2012-01-27 05:18:57