在web開發在獲取圖片寬高是很正常的事情,圖片在加載完成前是獲取不到圖片的寬高的,在加載完成後才可以獲取圖片本身的寬高,例如:
var img = new Image();
img.src = new Image();
img.src = "loading.gif";
img.onload = function(){
alert ( img.width );
};
OK?這段程式碼看著沒什麼問題,但在ie中會有一個bug,就是ie第一次打開的時候沒問題,第二次使用這個方法就悲劇了,ie沒反應了,即使刷新頁面也是一樣。因為IE會快取圖片,第2次載入的圖片,不是從伺服器上傳過來的,而是從緩衝區載入的。
先寫onload方法,再指定這張圖片的URL,這樣就正常了。所以,不是IE沒有觸發onload事件,而是因為載入緩衝區的速度太快,以至於沒有運行到img.onload的時候,onload事件已經觸發了。這樣就OK了。
程式碼如下:
var img = new Image();
var img = new Image(); alert ( img.width );
};img.src = "loading.gif";