2012-06-07 190 views
0

警報有效,但返回值爲0.如何獲取它以返回正確的值?如何獲得JavaScript返回此值?

var img; 
img = new Image(); 
img.onload = function() { 
    alert(img.width); 
    return(img.width); 
}; 
img.src = "https://maps.gstatic.com/mapfiles/dir/bike.png"; 
alert(img.width); 
+1

'onload'將在未來任意一點執行:在onload函數本身做你需要做的事情。 –

+0

也許你應該解釋你實際上想要完成的事情。然後有人可能會給你一個方法到達那裏。 – codemonkey

+0

你在哪裏試圖將'img.width'返回給?你提供的信息越多,你的幫助就越好。 – guanome

回答

3

你不能那樣做。 onload運行一次圖像加載後,這意味着設置src後,onload將在稍後運行。

您需要將處理圖像寬度的所有代碼放入onload

2

您可以返回值,但您無法捕獲它。

當您的圖片加載完成後,您傳遞給onload的功能將被執行。但是沒有辦法檢索那裏的返回值。你可以在裏面調用另一個函數來處理這個值。

+0

好吧,那麼無法返回該值? – user1357182

+1

@ user1357182只需調用另一個函數並將其作爲參數傳遞即可。這就是異步編碼的本質。 – Sirko

0

我在Chrome得到10從這個代碼:

​​

你必須等待圖像查詢寬度(onload)之前加載。