2012-06-19 50 views
2

我使用javascript獲取圖片大小,但直到第二次運行後纔會返回正確的尺寸。我想知道這是爲什麼。這裏是我的代碼:在Javascript中獲取圖片尺寸時第一次無法正常工作

var img = new Image() 
    img.src = src 
    img.onLoad = alert(img.width); 

這有時會返回0,但幾次之後,它返回的實際圖像的寬度。我如何讓它第一次得到合適的尺寸?我認爲這是正確的方式。

+0

你需要把這段代碼加載到頁面上。 –

+0

但它的功能。 –

+0

請添加代碼。你在哪裏調用函數 –

回答

6

問題是您直接調用alert而不是將其指定爲回調,因此在圖像加載之前調用它。這是你想要做什麼:

var img = new Image(); 
img.onload = function() { 
    alert(img.width); 
}; 
img.src = src; 
+0

@ZeeTee謝謝,現在修復。 – Trevor

+0

您還需要在'.src'賦值之前放置'.onload'賦值,否則當圖像位於瀏覽器緩存中時,它將無法在IE中正常工作。 – jfriend00

+0

@ jfriend00 Intresting,不知道。 – Trevor

-1

使用image元素的clientWidth屬性。

img.clientWidth; 
+1

這與實際問題無關。 – jfriend00

2

嘗試

img.onload = function(){alert(img.width);} 

,而不是

img.onLoad = alert(img.width); 
+0

+1這是正確的答案。原始代碼立即執行'alert()'語句,並將其返回值賦給'img.onload',這顯然不會達到預期的效果。 – jfriend00