2012-06-07 192 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)之前加载。