2011-10-15 41 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

由于该函数将在加载图像方法返回后执行,因此无法返回在卸载函数中分配的数据。你可以做的是传递一个回调函数,它可以从卸载函数中调用。 –

相关问题