2011-10-15 77 views
0

我想返回在圖像onload函數內執行的代碼。該代碼是:如何在返回結果之前在圖像onload函數中執行代碼?

function loadImage() { 
    var data = null; 
    var image = new Image(); 
    image.onload = function() { 
    console.log("I am inside of image load function"); 
    data = "I am inside"; 
    } 
    image.src="flower.jpg"; 
    console.log("I am outside of image load function"); 

    console.log(data); 
    return data; 
} 

而結果在firefox控制檯:

I am outside of image load function 
null 
I am inside of image load function 

我要的是,上面的代碼應該返回我想要的圖像的onload功能,即內部分配的數據的價值返回的數據是「我在裏面」。即

I am inside of image load function 
I am outside of image load function 
I am inside 

怎麼做才能達到想要的結果?

如何只能在外面的功能,然後再執行該圖像的onload函數裏面的代碼?

回答

0

我在猜測上面的例子是其他東西的一個簡化樣本?

不太清楚你想達到什麼,但看看你的代碼,你明白爲什麼null會出現在哪裏?

在點console.log(數據)執行的時候數據可能是空的,因爲圖像尚未完成加載。

當圖像加載時你想要發生什麼,並且你不能在卸載甚至處理程序中發生?

+0

我想返回圖像onload函數內部分配的數據,但我總是得到空返回。如何實現這一目標? – sumen

+0

由於該函數將在加載圖像方法返回後執行,因此無法返回在卸載函數中分配的數據。你可以做的是傳遞一個回調函數,它可以從卸載函數中調用。 –

相關問題