因此,警报为宽度和高度提供了未定义的值。我认为img.onload计算中图像的w和h值未传递给要返回的值,或者可能在onload计算它们之前返回了w和h :
function getMeta(url){
var w; var h;
var img=new Image;
img.src=url;
img.onload=function(){w=this.width; h=this.height;};
return {w:w,h:h}
}
// "http://snook.ca/files/mootools_83_snookca.png" //1024x678
// "http://shijitht.files.wordpress.com/2010/08/github.png" //128x128
var end = getMeta("http://shijitht.files.wordpress.com/2010/08/github.png");
var w = end.w;
var h = end.h;
alert(w+'width'+h+'height');
如何让警报显示正确的宽度和高度?
return
您尚未知道宽度和高度值的时候。您需要在回调内部处理结果onload
。您可能应该使回调函数成为函数的第二个参数getMeta
。